azure AKS 内部负载均衡器不响应请求

dex*_*ian 3 load-balancing kubernetes azure-aks

我有一个 AKS 集群以及一个单独的虚拟机。AKS 群集和 VM 位于同一 VNET(以及子网)中。

我使用以下 yaml 部署了一个 echo 服务器,我可以使用虚拟机中的 vnet ip 直接卷曲 pod。但是当尝试使用负载均衡器时,没有任何返回。真的不知道我错过了什么。任何帮助表示赞赏。

apiVersion: v1
kind: Service
metadata:
  name: echo-server
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: echo-server

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo-server
  template:
    metadata:
      labels:
        app: echo-server
    spec:
      containers:
        - name: echo-server
          image: ealen/echo-server
          ports:
            - name: http
              containerPort: 8080
Run Code Online (Sandbox Code Playgroud)

下面的图片展示了情况 在此输入图像描述 在此输入图像描述 在此输入图像描述

我期望当从负载均衡器卷曲 vnet ip 时,收到与直接卷曲 pod ip 相同的响应

dex*_*ian 5

找到解决方案,我唯一需要做的就是将以下内容添加到服务声明中:

externalTrafficPolicy: 'Local'
Run Code Online (Sandbox Code Playgroud)

完整的yaml如下

apiVersion: v1
kind: Service
metadata:
  name: echo-server
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  externalTrafficPolicy: 'Local'
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: echo-server
Run Code Online (Sandbox Code Playgroud)

之前它被设置为“集群”。


刚刚获得 azure 支持,似乎是一个特定的错误(它发生在较新版本的 AKS 中),在此发布相关链接: https: //github.com/kubernetes/ingress-nginx/issues/8501