AKS集群HTTPS Ingress问题:无法通过HTTPS访问服务
AKS Ingress配置HTTPS访问失败排查
问题描述
Azure AKS集群中,应用仅支持HTTP访问,尝试通过Azure Key Vault证书配置带TLS终止的Ingress后,Ingress创建成功但HTTPS流量无法正常转发,访问失败无提示。
Ingress配置
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.azure.com/tls-cert-keyvault-uri: https://mykeyvaultwebsite.vault.azure.net/certificates/poctodocertificat name: poctodoingress namespace: default-1705418607683 spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: webclient.robotist.poc.com http: paths: - backend: service: name: todolist-frontend-service port: number: 3000 path: / pathType: Prefix tls: - hosts: - webclient.robotist.poc.com secretName: mysecretname
已知信息
- Azure Key Vault TLS证书有效且可访问
todolist-frontend-service运行正常,集群内可通过3000端口访问- Ingress部署在正确的命名空间
default-1705418607683 - AKS版本1.27.7
- 已检查Ingress控制器日志、证书及Key Vault配置、服务状态,未发现明显异常
排查步骤与解决方案
1. 验证Key Vault证书同步到集群Secret
执行命令检查指定Secret是否存在且包含证书内容:
kubectl get secret mysecretname -n default-1705418607683 -o yaml
- 若Secret不存在:确认Ingress Controller的托管身份已被授予Key Vault的
Certificate Get权限,重新触发证书同步(可删除Ingress后重新创建) - 若Secret内容为空:检查Key Vault证书是否为有效PEM格式,或尝试手动导入证书到Secret测试
2. 查看Ingress资源事件与状态
执行命令获取Ingress的详细状态和事件日志:
kubectl describe ingress poctodoingress -n default-1705418607683
重点关注Events字段,排查是否存在证书拉取失败、配置同步错误等提示,根据提示修复权限或配置问题。
3. 确认DNS解析正确性
验证webclient.robotist.poc.com是否正确解析到Ingress的外部IP:
nslookup webclient.robotist.poc.com
- 若解析错误:更新DNS记录,指向通过
kubectl get ingress poctodoingress -n default-1705418607683获取的ADDRESS字段值
4. 检查证书与主机名匹配度
确认Key Vault中的证书包含webclient.robotist.poc.com作为CN(通用名称)或SAN(主题备用名称):
- 证书主机名不匹配会导致TLS握手失败,需重新申请符合要求的证书
5. 验证Ingress Controller端口监听
确认Web App Routing控制器已正确暴露443端口:
kubectl get svc -n kube-system | grep webapprouting
查看输出的PORT(S)字段,确保存在443:xxxx/TCP的端口映射,若缺失需检查Ingress Controller部署状态
6. 集群内测试HTTPS访问
在集群内临时启动测试Pod,直接访问Ingress外部IP验证:
kubectl run -it --rm curl-test --image=curlimages/curl -- curl -v https://webclient.robotist.poc.com --resolve webclient.robotist.poc.com:443:<Ingress外部IP>
- 若集群内访问成功:问题出在外部网络(如防火墙、NSG规则),需确保443端口允许外部流量进入
- 若集群内访问失败:聚焦Ingress或证书配置问题,重新检查TLS段配置与证书同步状态
内容的提问来源于stack exchange,提问作者Padam
相关产品推荐
相关产品推荐

