当我们启动一个主主节点时,该节点会使用ttl为工作节点和主节点创建令牌。
根据文档kubeadm token(我也测试过,它工作正常),我们可以发出一个命令,并获得一个新的令牌(默认ttl 24 h):
kubeadm token create --print-join-command
我试图弄清楚如果我想添加一个新的平面节点(第二主节点),我如何创建一个相关的令牌?
我尝试传递一些标志,例如:
kubeadm token create --print-join-command --control-plane
但是由于该标志未被识别,所以它失败(当然)。
我还通过文档发现,我们可以通过直接链接到配置文件来完成此操作,例如ref kubeadm-join/file或基于https的发现:
kubeadm join --discovery-file path/to/file.conf # (local file)
kubeadm join --discovery-file https://url/file.conf # (remote HTTPS URL)
在我的情况下,我没有本地conf文件或计划使用url链接。
是否有其他方法可以使用命令为平面节点而不是工作节点创建新令牌?
6条答案
按热度按时间7lrncoxx1#
你得去找主人
记住输出。
那你就去找师傅
然后根据此输出编写joining-master-node的joining命令,并将其添加到
--control-plane --certificate-key xxxx
请观看此视频,以示例进行解释:https://www.youtube.com/watch?v=27v36t-3afQ最有趣的是从20:40开始。由于版本较旧,视频中有一些“实验性”的单词。
vzgqcmou2#
下面将为您的其他控制器创建join命令。
ycl3bljg3#
根据用户的评论,似乎当有人运行此命令时:
应填充两个字符串示例:
在我的例子中,不幸的是它没有。也许是因为我使用的是来自Kubeadm的自签名证书,也可能是因为部署在裸机节点上。
尽管如此,我还是设法用另一种方法解决了我的问题。
根据官方文档,第一控制平面节点的步骤:
一旦用户在缩进的主主主节点(尚未启动的节点)上运行命令,它应该看到类似如下的内容:
然后,正如文档所述:
在我的例子中,我使用了一个conf文件,所以我将内容添加到我的文件中:
一旦用户具有该密钥并且利用该密钥启动主要主节点(如上所示),下一步是对次要主节点使用完全相同的证书密钥,例如:
**注意:**建议使用脚本生成此数据,以便在销毁/创建主节点时使用新的证书密钥。
希望这对未来的其他人有所帮助,以免像我一样花那么多钱。
8fq7wneg4#
命令
kubeadm token create
没有任何标志--control-plane
从docs
当您运行命令
kubeadm token create --print-join-command
时,您会在输出中获得两个命令,并使用带有--control-plane
标记的命令加入控制平面节点。x7rlezfr5#
我相信没有单独的令牌来添加更多的控制平面,您只需在添加时添加
--control-plane
。获取连接命令
kubeadm token create --print-join-command
假设证书已上载并设置到位。更多详细信息可在此处找到。https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
编辑:抱歉更新延迟
kubeadm alpha certs certificate-key
可用于创建密钥然后上传然后使用
kubeadm init phase upload-certs --upload-certs --certificate-key=<above key>
并使用它创建连接命令
kubeadm token create --print-join-command --certificate-key <key created above>
对于其他控制平面,您可以将
--control-plane
传递给上述join命令,而对于工作节点则忽略此标志xoshrz7s6#
我认为您需要下面的命令。
显示命令:
运行以下命令: