【发布时间】:2021-06-10 05:58:23
【问题描述】:
我正在研究一个新想法,为此我在 Azure Kubernetes 上创建了如下设置:
- 1 个集群
- 所述集群中有 1 个节点池
- 1 个部署在池中创建 2 个 pod
- 1 个负载均衡器服务于 2 个 Pod 之间的均衡请求
我正在尝试使用 AKS IP 从集群外部向负载均衡器提交 json 请求,但遇到 502 Bad Gateway 问题。
这是我的部署文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-1
spec:
selector:
matchLabels:
app: deployment-1
replicas: 2
template:
metadata:
labels:
app: deployment-1
spec:
containers:
- name: api-1
image: dummy
imagePullPolicy: Always
ports:
- containerPort: 5000
nodeSelector:
agentpool: analytics1
---
apiVersion: v1
kind: Service
metadata:
name: service-1
annotations:
service.beta.kubernetes.io/azure-dns-label-name: dummy
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 5000
selector:
app: deployment-1
检查服务是否正在运行。
LAMU02Y36ZHJG5J% kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cloud-api-v4-svc LoadBalancer 10.0.63.65 10.240.0.5 80:30054/TCP 37d
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 47d
service-1 LoadBalancer 10.0.55.129 10.240.0.9 5000:30507/TCP 41h
我使用此 LoadBalancer IP (10.240.0.9) 创建如下入口服务。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-1
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
spec:
rules:
- host: service-1.a3333fc09cb44a6b86b8.eastus.aksapp.io
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-1
port:
number: 5000
这是在创建入口之后。
LAMU02Y36ZHJG5J% kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-1 <none> service-1.a333fc09cb44a6b86b8.eastus.aksapp.io 20.84.1.20 80 65m
所以我认为一切都很好,然后我继续创建我的 AKS 应用程序网关,以便可以从任何 IP 访问它。我为 AKS App 网关指定的内容。 后端池 IP - 带有端口 80 的 20.84.1.20(这是入口 IP。我不确定这是否是我出错的地方)
配置后,现在当我尝试按原样访问 App 网关 IP 时,我收到 502 Bad Gateway 错误。我对 AKS 很陌生
【问题讨论】:
-
我在您的 Ingress 中没有看到以下注释。您可以添加它们并尝试吗? appgw.ingress.kubernetes.io/use-private-ip: "false" kubernetes.io/ingress.class: azure/application-gateway 这是你可以看到更多细节的时候。 docs.microsoft.com/en-us/azure/application-gateway/…
-
@efdestegul 谢谢!做到了。
-
很高兴听到这个消息!让我分享它作为社区的答案
标签: azure kubernetes azure-devops azure-aks