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

kubelet API SSL验证失败求助(拒绝跳过SSL验证)

解决Kubelet API SSL验证失败(证书CN与请求IP不匹配)的方案

问题核心

调用Kubelet API时证书验证失败,原因是证书通用名称(CN)为节点主机名aks-agentpool-38123352-vmss00000K,但请求使用的是节点IP10.224.0.12,两者不匹配;而Kubernetes API Server的证书包含了对应调用域名的SAN/CN,因此同一CA证书可正常验证。

以下是无需跳过SSL验证的解决方案:


方案1:使用节点主机名访问Kubelet API

直接用证书CN对应的节点主机名替代IP发起请求,确保证书验证匹配:

wget https://aks-agentpool-38123352-vmss00000K:10250/stats/summary --header "Authorization: Bearer $TOKEN" --ca-certificate=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt

注意:调用端需能解析该主机名,可通过集群内部DNS(若已配置节点主机名解析)或手动在/etc/hosts添加映射实现。

方案2:为Kubelet证书添加IP作为SAN字段

如果必须使用IP访问,需修改Kubelet配置,将节点IP加入证书的Subject Alternative Name(SAN):

  1. 找到Kubelet配置文件(AKS环境通常位于/var/lib/kubelet/config.yaml),添加或更新certificateSANs字段:
    apiVersion: kubelet.config.k8s.io/v1beta1
    kind: KubeletConfiguration
    serverTLSBootstrap: true
    certificateSANs:
      - "10.224.0.12"
      - "aks-agentpool-38123352-vmss00000K"
    
  2. 重启Kubelet服务:
    systemctl restart kubelet
    
  3. 等待Kubelet向API Server重新申请包含IP SAN的新证书,完成后即可用IP正常访问Kubelet API并通过验证。

方案3:在调用端配置IP与主机名的映射

若无法修改Kubelet证书,可在调用机器的/etc/hosts中添加IP到节点主机名的映射:

10.224.0.12 aks-agentpool-38123352-vmss00000K

之后仍使用节点主机名调用Kubelet API,底层会解析到目标IP,同时证书验证可匹配CN。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:17:42