注意:在阿里的k8s中使用SLB,當服務(pod)發生漂移后,slb后端也會動態修改,此時會有瞬間的5xx錯誤,同時注意會覆蓋原先手動配置的配置。因此給K8S提供SLB時最好使用全新的SLB。
---四層協議yaml文件---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-id: "你的SLB實例ID"
service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: "true"
name: xlvip-api-grpc-slb
namespace: xlvip
spec:
externalTrafficPolicy: Local
ports:
- name: grpc
port: 50051
protocol: TCP
targetPort: 50051
selector:
xlvip-app: xlvip-api-grpc
sessionAffinity: None
type: LoadBalancer
---七層協議yaml文件---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-cert-id: 你的域名證書id
service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: "true"
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-interval: "10"
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-timeout: "5"
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-type: http
service.beta.kubernetes.io/alicloud-loadbalancer-health-check-uri: /healthz
service.beta.kubernetes.io/alicloud-loadbalancer-healthy-threshold: "2"
service.beta.kubernetes.io/alicloud-loadbalancer-id: 你的SLB實例ID
service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port: https:443,http:80
service.beta.kubernetes.io/alicloud-loadbalancer-unhealthy-threshold: "3"
labels:
app: nginx-ingress-lb
name: nginx-ingress-xshare-lb
namespace: xlsdk
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: ingress-nginx
sessionAffinity: None
type: LoadBalancer