涉及的知识点:
Ingress
我们可以使用之前部署Deployment的Service,具体实现:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: sai-ingress spec: rules: - host: sai.puresai.com http: paths: - path: "/" pathType: Prefix backend: service: name: sai port: number: 80
|

LoadBalancer
在使用支持外部负载均衡器的云提供商的服务时,设置 type
的值为 "LoadBalancer"
, 将为 Service 提供负载均衡器。 负载均衡器是异步创建的,关于被提供的负载均衡器的信息将会通过 Service 的 status.loadBalancer
字段发布出去。
apiVersion: v1 kind: Service metadata: name: sai-lb spec: selector: app: sai ports: - protocol: TCP port: 80 targetPort: 80 clusterIP: 10.0.171.239 type: LoadBalancer status: loadBalancer: ingress: - ip: 192.0.2.127
|
来自外部负载均衡器的流量将直接重定向到后端 Pod 上,不过实际它们是如何工作的,这要依赖于云提供商。
比如使用ucloud:
apiVersion: v1 kind: Service metadata: name: ucloud-nginx-out-tcp-new labels: app: ucloud-nginx-out-tcp-new annotations: "service.beta.kubernetes.io/ucloud-load-balancer-type": "outer" "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "tcp" "service.beta.kubernetes.io/ucloud-load-balancer-eip-bandwidth": "2" "service.beta.kubernetes.io/ucloud-load-balancer-eip-chargetype": "month" "service.beta.kubernetes.io/ucloud-load-balancer-eip-quantity": "1" spec: type: LoadBalancer ports: - protocol: TCP port: 80 targetPort: 80 selector: app: ucloud-nginx-out-tcp-new
|