我有一个AKS集群,以及一个单独的VM。AKS集群和VM在同一个VNET (以及子网)中。
我用下面的yaml部署了一个回显服务器,我可以从VM直接使用vnet来压缩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下面的图片展示了情况



我希望当从负载均衡器中压缩vnet ip时,会收到与直接卷曲pod相同的响应。
发布于 2022-10-30 04:30:24
您是否检查过pod的IP是否被正确地映射为服务的端点?你可以用
k describe svc echo-server -n test | grep Endpoints
如果没有,请检查标签和选择器与您的实际部署(而不是在描述中的资源)。
如果映射正确,是否确定所使用的VM (_@tester)位于正确的子网下,其中也应包括iLB IP;10.240.0.226?
发布于 2022-10-31 13:52:48
你能检查一下你的内部负载平衡器健康探头吗?
“对于Kubernetes 1.24+,具有LoadBalancer HTTP/HTTPS类型的服务将切换为使用HTTP/HTTPS作为健康探测协议(而在v1.24.0之前它使用appProtocol )。和/将用作默认的健康探测请求路径。如果您的服务没有为服务响应200,请确保您正在使用正确的请求路径设置服务注释service.beta.kubernetes.io/port_{port}_health-probe_request-path或service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path (适用于所有端口),以避免服务中断。“(参考文献:https://github.com/Azure/AKS/releases/tag/2022-09-11)
如果您正在使用nginx-ingress控制器,请尝试添加与doc:(https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli#basic-configuration)中提到的相同的内容。
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--reuse-values \
--namespace <NAMESPACE> \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz发布于 2022-10-31 15:22:54
找到解决方案后,我唯一需要做的就是将以下内容添加到服务声明中:
externalTrafficPolicy: 'Local'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以前,它被设置为“群集”。
刚开始支持蔚蓝,似乎是一个特定的错误(它发生在更新版本的AKS),张贴在这里的相关链接:https://github.com/kubernetes/ingress-nginx/issues/8501
https://stackoverflow.com/questions/74247498
复制相似问题