问题:在对master节点进行init时报错"Error getting node" err=“node “k8s-master” not found”

使用以下命令进行init

kubeadm init       --apiserver-advertise-address=服务器公网ip       --image-repository registry.aliyuncs.com/google_containers       --kubernetes-version v1.23.6       --service-cidr=10.96.0.0/12       --pod-network-cidr=10.244.0.0/16

报错:“Error getting node” err=“node “k8s-master” not found”

后来尝试将公网ip改成了私有ip发现init成功了

然后我就想着就用私有ip对了,就将/etc/hosts文件也该了,但是到Node加入的时候新问题来了,Node找不到master,就怀疑还是这个私有ip的问题。

之后尝试ping了以下,结果果然ping不通私有ip(我是才入门,所以不知道私有ip本来就ping不通,结果在安全组和防火墙上折腾了半天)。

结果发现,Kubernetes 的 API 服务器的证书默认只包含私有 IP 地址,如果你需要使用公有 IP 地址,需要进行额外的配置。

因此,就需要把公有ip配置到证书里,为了方便启动和配置,写了一个配置文件:

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.23.6
imageRepository: registry.aliyuncs.com/google_containers
controlPlaneEndpoint: "公有IP:6443"
networking:
  serviceSubnet: "10.96.0.0/12"
  podSubnet: "10.244.0.0/16"
apiServer:
  certSANs:
  - "公有IP"
  - "私有IP"

然后运行:

kubeadm init --config=/etc/kubeadm-config.yaml

成功了!!!
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐