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
Đăng nhận xét