日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Kubernetes集群中訪問LoadBalancer暴露出去的SLB地址不通

更新時間:

問題描述

在Kubernetes集群中有部分節點能訪問集群暴露出去的Local類型SLB,但是也有部分節點不能訪問,且Ingress出現該問題較多。

問題原因

SLB設置了externalTrafficPolicy: Local類型,這種類型的SLB地址只有在Node中部署了對應的后端Pod,才能被訪問。因為SLB的地址是集群外使用,如果集群節點和Pod不能直接訪問,請求不會到SLB,會被當作Service的擴展IP地址,被kube-proxy的iptables或ipvs轉發。

如果剛好集群節點或者Pod所在的節點上沒有相應的后端服務Pod,就會發生網絡不通的問題,而如果有相應的后端服務Pod,是可以正常訪問。相關問題的更多信息請參見kube-proxy將external-lb的地址添加到節點本地iptables規則

解決方案

阿里云提醒您:

  • 如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。
  • 如果您對實例(包括但不限于ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。
  • 如果您在阿里云平臺授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。

若出現該問題,可以參見以下方法解決問題,推薦您使用第一種方法:

  • 在Kubernetes集群內通過ClusterIP或者服務名訪問。
    其中Ingress的服務名為:nginx-ingress-lb.kube-system
  • 將LoadBalancer的Service中的externalTrafficPolicy修改為Cluster,但是在應用中會丟失源IP,Ingress的服務修改命令如下。
    說明:若是Ingress的SLB,只有Ingress的Pod所在節點上,Pod才能訪問通過Ingress或SLB暴露出去的服務。
    • 修改Ingress上的svc為Cluster類型,集群會進行SNAT,Ingress的Pod不在的節點上也可以訪問Ingress或SLB暴露出去的服務,后端應用無法獲取客戶端真實IP地址。
    kubectl edit svc nginx-ingress-lb -n kube-system
  • 若是Terway的ENI或者ENI多IP的集群,將LoadBalancer的Service中的externalTrafficPolicy修改為Cluster,并且添加ENI直通的annotation,例如annotation: service.beta.kubernetes.io/backend-type:"eni",具體格式如下,可以保留源IP,并且在集群內訪問也沒有問題。詳細信息請參見通過負載均衡(Server Load Balancer)訪問服務
    apiVersion: v1
    kind: Service
    metadata:
    annotations:
      service.beta.kubernetes.io/backend-type: eni
    labels:
      app: nginx-ingress-lb
    name: nginx-ingress-lb
    namespace: kube-system
    spec:
    externalTrafficPolicy: Cluster

適用于

  • 容器服務Kubernetes版

說明:請在升級到Kubernetes V1.14之前檢查下是否做了對應配置,排除升級后出現該問題的風險。