NodePort , Load Balancer và Ingess trong kubernetes.


Khái niệm NodePort , Load balancer và Ingress hay làm chúng ta lẫn lộn. Để làm rõ vấn đề này bạn cần vững và hiểu các khái niệm sau : 



NodePort : 

NodePort là dịch vụ cơ bản nhất của Kubernetes để traffic bên ngoài đi vào dịch vụ bên trong. 


NodePort được định nghĩa trong file YAML như sau: 



apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
nodePort: 30036
protocol: TCP

NodePort hiện tại của service là : 30036

Loadbalancer: 

Loadbalancer sẽ cung cấp 1 single IP address để truy cập vào dịch vụ phía trong: 

Ingress:

Ingress không phải là kiểu dịch vụ như 2 dịch vụ nói trên, 


Ingress giống nginx hơn, nó control domain, subdomain và các sub path phía sau domain:

Define 1 ingress như sau: 

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
backend:
serviceName: other
servicePort: 8080
rules:
- host: foo.mydomain.com
http:
paths:
- backend:
serviceName: foo
servicePort: 8080
- host: mydomain.com
http:
paths:
- path: /bar/*
backend:
serviceName: bar
servicePort: 8080

Ingress rất thường sử dụng vì nó là 1 L7 Load balancer.  Nó phục vụ hầu hết các nhu cầu như một "smart router". 









Nhận xét

Bài đăng phổ biến từ blog này

Trang web medium.com chết, vì sao ?

Cách sử dụng sys.argv trong python.

Thiết kế một RESTful API bằng python và flask.