向Kubernetes控制平面添加节点时的证书密钥
因此,我知道如何将工作节点添加到现有的Kubernetes 1.14集群(该集群是使用向Kubernetes控制平面添加节点时的证书密钥,kubernetes,kubeadm,Kubernetes,Kubeadm,因此,我知道如何将工作节点添加到现有的Kubernetes 1.14集群(该集群是使用kubeadm设置的):将打印一个有效的kubeadm join命令,其中包含参数--token和--discovery token ca cert hash的正确值 我目前了解到,将另一个节点添加到控制平面(主节点)需要额外的参数--实验控制平面(w/o值)和--证书密钥。这适用于堆叠控制平面和etcd节点 如何(在哪个文件中)为现有群集获取--证书密钥的正确值 更新我的第一个(也是目前唯一的一个)主节点是在
kubeadm
设置的):将打印一个有效的kubeadm join
命令,其中包含参数--token
和--discovery token ca cert hash
的正确值
我目前了解到,将另一个节点添加到控制平面(主节点)需要额外的参数--实验控制平面
(w/o值)和--证书密钥
。这适用于堆叠控制平面和etcd节点
如何(在哪个文件中)为现有群集获取--证书密钥
的正确值
更新我的第一个(也是目前唯一的一个)主节点是在没有参数的情况下创建的——实验性上传证书
到kubeadm init
(而是通过kubeadm init--pod network cidr=10.244.0.0/16
)。因此应适用,因此可能的步骤顺序为:
/etc/kubernetes/pki/{ca.*,sa.*,front proxy sa.*,etcd/ca.*}
中的证书和密钥从第一个复制到新的主节点kubeadm令牌创建--print join命令
kubeadm join
命令--实验控制平面
kubeadm init phase upload-certs --experimental-upload-certs
我在1.17中一直在努力解决这个问题,最后发现这个命令将为pre-generate提供一个证书密钥,我可以在
kubeadmn init
和kubeadmn join
中使用它。要使其工作,您需要通过--上传证书
,以及运行kubeadmn init
时,类似于您在1.14中提到的
#生成要使用的证书密钥
kubeadm alpha证书密钥
#使用上述键初始化第一台主机,--上载证书(和其他参数)
kubeadm init--控制平面端点$API_服务器:6443--上载证书--apiserver证书附加SAN$API_服务器--证书密钥$cert-key
#使用相同的证书密钥加入其他主机
kubeadm join$API_服务器:6443——令牌$token——发现令牌ca cert hash$CAHASH——控制平面——证书密钥$cert-key
给出答案的另一种方法是使用kubeadm
将证书作为机密上传到kube系统
(将在2小时后过期)。在初始化阶段不需要传递证书密钥
所以你可以
kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT"
后来
kubeadm init phase upload-certs --upload-certs
该命令将输出可用于创建的密钥的证书密钥
kubeadm join LOAD_BALANCER_DNS:LOAD_BALANCER_PORT --token <token> \
--discovery-token-ca-cert-hash <hash> \
--control-plane \
--certificate-key <key from previous commmand>
kubeadm加入负载均衡器\u DNS:负载均衡器\u端口--令牌\
--发现令牌ca证书哈希\
--控制平面\
--证书密钥