You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:52:49