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

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

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

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