如何解决Kubeadm join:创建具有多个主节点的 HA 集群时失败
我有 5 Vm in my GCP
,其中三个应该是 master1,master2,master3
,另外两个是工作节点 (worker1 & worker 2)
。我创建了一个 TCP Loadbalancer(LB)
来为主节点启用负载平衡。我在 LB 中有两个部分:
i)frontend ii)backend
在后端,我在那里定义了所有主 ip。在前端,我生成了一个静态公共 ip 和给定的端口 6443 as LB port
。
在 master1 中,我成功地运行了 kubeadm init
命令,如下所示:
kubeadm init --control-plane-endpoint="<LB_IP>:6443" --apiserver-advertise-address=10.128.0.2 --pod-network-cidr=10.244.0.0/16
其中 10.128.0.2 是 master1 内部 ip & 10.244.0.0/16 是 kube-flannel 的网络 cidr。
kubeadm init 运行成功并给出两个 kubeadm join 命令,一个用于加入新的控制平面,另一个用于加入新的工作节点。
You can Now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:
kubeadm join LB_IP:6443 --token znnlha.6Gfn1vlkunwpz36b \
--discovery-token-ca-cert-hash sha256:dc8834a2a5b4ada38a1ab9831e4cae67e9d64cb585458a194018f3ba5a82ac4U \
--control-plane
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join LB_IP:6443 --token znnlha.6sfn1vlkunwpz36A \
--discovery-token-ca-cert-hash sha256:dc8834a2a5b4ada38a1ab9831e4cae68e9d64cb585458a194018f3ba5a82ac4e
我没有使用 --upload-certs
将证书从一个控制平面传输到另一个控制平面。我是手动做的。
但是当我运行上面的 kubeadm join
命令来添加一个新的控制平面时,在我的其他主节点之一上,比如说 master2
,我收到如下错误:
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: Failed to get config map: Get "https://LB_IP:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s": dial tcp LB_IP:6443: connect: connection refused
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。