Azure应用网关Ingress:ClusterIP后端池及SSL重定向配置问题
问题解答
一、SSL重定向配置失败的解决
添加appgw.ingress.kubernetes.io/ssl-redirect: "true"后Ingress无法自动配置网关,核心是缺少SSL证书和HTTPS监听的基础配置:
- 应用网关必须先配置可用的SSL证书(可手动上传到网关,或通过cert-manager自动管理),并创建HTTPS监听端口(默认443),否则重定向规则没有可依赖的HTTPS端点,Ingress Controller无法完成配置。
- 若使用cert-manager管理证书,需在Ingress的
spec中添加tls段,指定域名和对应的证书秘钥,示例:
spec: tls: - hosts: - your-app-domain.com secretName: myapp-tls-secret
- 可查看Ingress Controller的Pod日志,里面会明确提示证书缺失或监听配置错误的具体信息。
二、后端池使用ClusterIP异常的解决
Azure应用网关支持将ClusterIP作为后端池地址,手动修改后异常是因为忽略了以下关键配置:
- 网络连通性保障
ClusterIP是Kubernetes集群内部的虚拟IP,应用网关必须能访问该IP段:- 若为AKS托管应用网关,默认已打通集群与网关的网络;若为自建网关,需确保网关与集群节点在同一个VNet,或通过VNet对等、VPN等方式实现网络连通,否则网关无法访问ClusterIP。
- 健康探针匹配Service配置
手动将后端池改为ClusterIP后,健康探针的目标端口需改为Service的port(即80端口),而非Pod的targetPort(6420);同时要确认探针路径为应用实际的健康检查端点(如/healthz),若使用默认的/但应用根路径未返回200状态码,探针会失败,导致后端池状态异常。 - 通过注解控制,避免手动修改网关
Azure应用网关Ingress Controller会自动同步Kubernetes资源到网关,手动修改网关配置会与Controller的自动同步产生冲突。若要使用ClusterIP作为后端目标,直接在Service上添加注解appgw.ingress.kubernetes.io/use-pod-ips: "false",Controller会自动将后端池配置为ClusterIP,无需手动修改网关。
内容的提问来源于stack exchange,提问作者priyam
相关产品推荐
相关产品推荐

