加入工作节点时无法读取集群 ca 证书
Failed to read cluster ca certificate when joining worker node
我正在尝试按照此 kOS Setup Link 设置多节点 k8s 集群,但是当我尝试将其中一个节点加入主节点时遇到以下错误:
k0s token create --role=worker
WARN[2022-01-12 13:55:31] no config file given, using defaults
Error: failed to read cluster ca certificate from /var/lib/k0s/pki/ca.crt: open
/var/lib/k0s/pki/ca.crt: no such file or directory. check if the control plane is
initialized on this node
我从控制节点验证了这个文件确实存在,但是:
cd /var/lib/k0s/pki
ls
我是从头开始设置 k8s 的新手,有点不确定我需要修复哪个配置项(以及主节点和工作节点之间的哪个位置?)。
我的研究表明,将新的工作节点加入 Kubernetes 集群时需要一个令牌——这个令牌是从控制节点生成的。它还说 当你 bootstrap 使用 kubeadm 的集群时,会生成一个令牌,该令牌将在 24 小时后过期
当我尝试检查主节点上是否存在令牌时,我得到:
kubeadm tokens list
-bash: kubeadm: command not found
不过我不确定这是否正确(k0s even bootstrap是否与 kubeadm
同步? ?).
但是使用 k0s CLI 语法我可以看到它们不是主节点上的令牌:
k0s token list
No k0s join tokens found
我的问题:
- 我需要为报告丢失的文件做什么。
- 这个错误是否(可能)与上面的token问题有关,如果是,我首先需要在主节点端重新生成token。
- 我在此 Github Issue 遇到了多个修复程序,但我不确定是否有任何修复程序适用于我的问题。我需要做的最后一件事是在完成集群设置之前中断当前设置。
环境
主节点:Debian 10 Buster
工作节点:Debian 10 Buster
我在 worker 节点上尝试 运行 k0s token create --role=worker
时遇到了与您相同的错误。
你需要运行 this command on the master node:
Next, you need to create a join token that the worker node will use to join the cluster. This token is generated from the control node.
首先你需要在master节点上运行k0s token create --role=worker
获取token然后use this token on the worker node:
On the worker node, issue the command below.
k0s worker <login-token>
所以:
- 使用
k0s token create --role=worker
在 master 上生成令牌
- 使用
k0s worker <login-token>
在 worker 上使用此令牌
在我的例子中,我还需要在两个命令之前添加 sudo
,所以它们看起来像 sudo k0s token create --role=worker
和 sudo k0s worker <login-token>
您写道:
I am unsure however if this is correct ( Is k0s even bootstrapped with kubeadm ?? ).
不,它们是两个不同且独立的解决方案。
我正在尝试按照此 kOS Setup Link 设置多节点 k8s 集群,但是当我尝试将其中一个节点加入主节点时遇到以下错误:
k0s token create --role=worker
WARN[2022-01-12 13:55:31] no config file given, using defaults
Error: failed to read cluster ca certificate from /var/lib/k0s/pki/ca.crt: open
/var/lib/k0s/pki/ca.crt: no such file or directory. check if the control plane is
initialized on this node
我从控制节点验证了这个文件确实存在,但是:
cd /var/lib/k0s/pki
ls
我是从头开始设置 k8s 的新手,有点不确定我需要修复哪个配置项(以及主节点和工作节点之间的哪个位置?)。 我的研究表明,将新的工作节点加入 Kubernetes 集群时需要一个令牌——这个令牌是从控制节点生成的。它还说 当你 bootstrap 使用 kubeadm 的集群时,会生成一个令牌,该令牌将在 24 小时后过期
当我尝试检查主节点上是否存在令牌时,我得到:
kubeadm tokens list
-bash: kubeadm: command not found
不过我不确定这是否正确(k0s even bootstrap是否与 kubeadm
同步? ?).
但是使用 k0s CLI 语法我可以看到它们不是主节点上的令牌:
k0s token list
No k0s join tokens found
我的问题:
- 我需要为报告丢失的文件做什么。
- 这个错误是否(可能)与上面的token问题有关,如果是,我首先需要在主节点端重新生成token。
- 我在此 Github Issue 遇到了多个修复程序,但我不确定是否有任何修复程序适用于我的问题。我需要做的最后一件事是在完成集群设置之前中断当前设置。
环境 主节点:Debian 10 Buster 工作节点:Debian 10 Buster
我在 worker 节点上尝试 运行 k0s token create --role=worker
时遇到了与您相同的错误。
你需要运行 this command on the master node:
Next, you need to create a join token that the worker node will use to join the cluster. This token is generated from the control node.
首先你需要在master节点上运行k0s token create --role=worker
获取token然后use this token on the worker node:
On the worker node, issue the command below.
k0s worker <login-token>
所以:
- 使用
k0s token create --role=worker
在 master 上生成令牌
- 使用
k0s worker <login-token>
在 worker 上使用此令牌
在我的例子中,我还需要在两个命令之前添加 sudo
,所以它们看起来像 sudo k0s token create --role=worker
和 sudo k0s worker <login-token>
您写道:
I am unsure however if this is correct ( Is k0s even bootstrapped with kubeadm ?? ).
不,它们是两个不同且独立的解决方案。