所以我知道如何将工作节点添加到现有的 Kubernetes 1.14 集群(使用 kubeadm
设置):kubeadm token create --print-join-command
将打印一个有效的 kubeadm join
命令,其中参数 --token
和 --discovery-token-ca-cert-hash
的值正确。
我目前了解将另一个节点添加到控制平面(主节点)kubeadm join
需要附加参数 --experimental-control-plane
(无值)和 --certificate-key
。这适用于堆叠控制平面和 etcd 节点。
如何(在哪个文件中)为现有集群获取 --certificate-key
的正确值?
UPDATE 我的第一个(也是目前唯一的)主节点是在没有参数 --experimental-upload-certs
到 kubeadm init
的情况下创建的(而是由 kubeadm init --pod-network-cidr=10.244.0.0/16
代替)。因此manual certificate distribution应该适用,因此可能的步骤顺序可能是:
- 将
/etc/kubernetes/pki/{ca.*,sa.*,front-proxy-sa.*,etcd/ca.*}
中的证书和 key 从第一个复制到新的主节点 - 在第一个主节点上运行
kubeadm token create --print-join-command
- 在新的主节点上运行带有附加参数
--experimental-control-plane
的打印kubeadm join
命令
这是正确的程序吗?
最佳答案
给出答案的替代方法是使用 kubeadm
来管理证书,方法是将证书作为 secret 上传到 kube-system
(它将在 2 小时后过期)。在初始化阶段不需要传递证书 key
所以你可以这样做
kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT"
然后在以后
kubeadm init phase upload-certs --upload-certs
该命令将输出可用于创建的 key 的证书 key
kubeadm join LOAD_BALANCER_DNS:LOAD_BALANCER_PORT --token <token> \
--discovery-token-ca-cert-hash <hash> \
--control-plane \
--certificate-key <key from previous commmand>
关于kubernetes - 将节点添加到 Kubernetes 控制平面时的证书 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55850229/