kubeadm join 报错: couldn’t validate the identity of the API Server

在公网服务器创建一个集群后,想把本地电脑作为节点添加进公网的集群, 于是创建了一个虚拟局域网10.147.20.1/16
但是join时出现了
couldn’t validate the identity of the API Server: Get “https://10.147.20.1:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s”: x509: certificate is valid for xxx, xxx, 127.0.0.1, not 10.147.20.1
错误,求dalao帮忙

  • kevendeng 回复了此帖
  • heming
    一个有效的证书是与其持有者的主体绑定的,在kube-apiserver所使用的HTTPS证书语境下,这个主体就是它的访问地址(域名、IP),客户端(浏览器、kubectlkubelet等)与apiserver通信并验证其身份时,会比对其地址是否包含在该证书中。由于创建集群时master节点并未绑定你之后才建立的VPN地址,因此kubeadm为apiserver签发的证书并不包含该地址,节点join时验证失败。

    你可在master节点上执行openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text | grep IP查看证书已包含的地址。

    要解决此问题,你可:

    • 使用kubeadm或openssl为apiserver证书增加该VPN的IP地址
    • 或在欲加入集群的节点中编辑/etc/hosts文件,配置apiserver证书中已包含的某个域名到IP地址的固定映射,并使用此域名加入集群

    heming
    一个有效的证书是与其持有者的主体绑定的,在kube-apiserver所使用的HTTPS证书语境下,这个主体就是它的访问地址(域名、IP),客户端(浏览器、kubectlkubelet等)与apiserver通信并验证其身份时,会比对其地址是否包含在该证书中。由于创建集群时master节点并未绑定你之后才建立的VPN地址,因此kubeadm为apiserver签发的证书并不包含该地址,节点join时验证失败。

    你可在master节点上执行openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text | grep IP查看证书已包含的地址。

    要解决此问题,你可:

    • 使用kubeadm或openssl为apiserver证书增加该VPN的IP地址
    • 或在欲加入集群的节点中编辑/etc/hosts文件,配置apiserver证书中已包含的某个域名到IP地址的固定映射,并使用此域名加入集群

      kevendeng 感谢dalao的热心帮忙🌹🌹🌹🌹,
      已经用方法1解决了该问题,
      请问方法2中的配置某个域名到IP地址的固定映射的这个IP地址是VPN的IP吗?