问题描述
我有 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 (将#修改为@)