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

如何解決Kubernetes集群中的Pod無法訪問入口網關的CLB地址的問題?

本文介紹如何解決數據面Kubernetes集群中的Pod無法訪問入口網關的CLB地址的問題。

問題現象

服務網格ASM已添加Kubernetes集群,并且使用Local類型的負載均衡CLB部署入口網關。當應用Pod訪問入口網關暴露的CLB地址時,出現以下問題:

  • 部分節點上的Pod能訪問入口網關暴露的CLB地址。

  • 部分節點上的Pod不能訪問入口網關暴露的CLB地址。

問題原因

如果Kubernetes的Service配置了externalTrafficPolicy: Local,則只有從部署了服務后端Pod的節點才能訪問CLB。由于CLB地址僅在集群外使用,如果從集群節點或Pod不能直接訪問CLB地址,請求不會路由到負載均衡,而是被當作服務的擴展IP地址,被kube-proxy的iptables或IPVS轉發。

如果集群節點或者Pod所在的節點上沒有相應的后端服務Pod,就會發生網絡不通的問題。而如果有相應的后端服務Pod,則可以正常訪問CLB地址。更多信息,請參見iptables規則

解決方案

  • 您可以在Kubernetes集群內通過ClusterIP或者服務名訪問CLB地址。其中入口網關的服務名為istio-ingressgateway.istio-system。

    說明

    推薦使用該方法。

  • 如果您不需要源IP,您可以使用以下方法。

    將入口網關服務中的externalTrafficPolicy修改為Cluster,但是在應用中會丟失源IP。關于修改入口網關的更多信息,請參見ASM網關CRD說明

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      name: ingressgateway
      namespace: istio-system
      ....
    spec:
      externalTrafficPolicy: Cluster
    ....
  • 如果您使用的是Terway的ENI或者ENI多IP集群,您可以使用以下方法。該方法不會丟失源IP,也支持在集群內訪問CLB地址。

    將入口網關服務中的externalTrafficPolicy修改為Cluster,并且添加ENI直通的Annotation,例如serviceAnnotations: service.beta.kubernetes.io/backend-type: eni。關于修改入口網關的更多信息,請參見ASM網關CRD說明

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      name: ingressgateway
      namespace: istio-system
      ....
    spec:
      externalTrafficPolicy: Cluster
      maxReplicas: 5
      minReplicas: 2
      ports:
        - name: status-port
          port: 15020
          targetPort: 15020
        - name: http2
          port: 80
          targetPort: 80
        - name: https
          port: 443
          targetPort: 443
        - name: tls
          port: 15443
          targetPort: 15443
      replicaCount: 2
      resources:
        limits:
          cpu: '2'
          memory: 2G
        requests:
          cpu: 200m
          memory: 256Mi
      runAsRoot: false
      serviceAnnotations:
        service.beta.kubernetes.io/backend-type: eni
      serviceType: LoadBalancer