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

升级至AKS Kubernetes 1.24.6后cert-manager无法签发证书

问题诊断与解决方案

一、ServerSideApply 配置验证与启用

Kubernetes 1.24+ 版本中,cert-manager 依赖 ServerSideApply 特性完成资源管理,这是你遇到问题的潜在根源之一。

检查当前 cert-manager 配置

执行以下命令查看 cert-manager 是否已启用 ServerSideApply:

kubectl get deployment cert-manager -n cert-manager -o yaml | grep -A5 -B5 "server-side-apply"

若输出中无相关配置项,需通过 Helm 重新部署以启用该特性。

通过 Helm 启用 ServerSideApply

升级或重新安装 cert-manager 时添加对应参数:

helm upgrade --install cert-manager cert-manager/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.11.0 \
  --set global.enableServerSideApply=true \
  --set installCRDs=true

二、DNS 解析失败问题排查

针对初期无法通过 kube-dns 解析域名的错误,按以下步骤排查:

  • 检查 cert-manager 挑战 Pod 状态:
    kubectl get pods -n cert-manager -l app=cert-manager
    
  • 在集群内部测试域名解析:
    kubectl run -it --rm dns-test --image=busybox:1.28 -- nslookup my.hostname.de
    
  • 确认 ingressClass 配置一致性:检查 cert-manager 引用的 ingressClass 与 ingress-nginx 实际部署的 ingressClass 名称一致:
    kubectl get ingressclasses
    

三、外部 IP 连接超时问题排查

针对后期连接 ingress-nginx 外部 IP 超时的错误,重点排查 Azure 网络配置:

  • 验证 Azure 负载均衡器规则:确保 80/443 端口已对外开放,后端池正确关联 ingress-nginx 的节点或 Pod。
  • 检查 Azure 网络安全组(NSG):确认允许互联网到集群的 80/443 端口流量,同时允许集群内部到 ingress-nginx Pod 的流量。
  • 外部访问测试:从集群外执行 curl 命令验证挑战路径可访问:
    curl http://20.79.77.156/.well-known/acme-challenge/test
    
    若访问失败,说明外部流量无法抵达 ingress-controller,需调整 Azure 网络策略。

四、版本兼容性与日志排查

  • 二次确认版本兼容性:cert-manager 1.11.0 与 Kubernetes 1.24.6/1.25.4 兼容,ingress-nginx 4.4.2(controller-v1.5.1)也支持对应 K8s 版本,若仍有问题可查看官方版本矩阵确认。
  • 查看 cert-manager 详细日志定位问题:
    kubectl logs -n cert-manager deployment/cert-manager -f
    

内容的提问来源于stack exchange,提问作者TH1007

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:40:57