1

我正在尝试根据此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 集群时需要一个令牌——这个令牌是从控制节点生成的。它还说,当您使用 kubeadm 引导集群时,会生成一个令牌,该令牌会在 24 小时后过期

当我尝试检查主节点上是否存在令牌时,我得到:

 kubeadm tokens list
-bash: kubeadm: command not found

但是,我不确定这是否正确(k0s甚至是用kubeadm?? 引导的)。

但是使用 k0s CLI 语法,我可以看到它们在主服务器上没有标记:

k0s token list
No k0s join tokens found

我的问题:

  1. 对于报告为丢失的文件,我需要做什么。
  2. 这个错误(可能)是否与上述令牌问题有关,如果是,我首先需要在主节点端重新生成令牌。
  3. 我在这个Github 问题上遇到了多个修复,但我不确定它们中的任何一个是否适用于我的问题。我需要做的最后一件事是在我完成集群设置之前中断当前设置。

环境主节点:Debian 10 Buster 工作节点:Debian 10 Buster

4

1 回答 1

1

当我尝试k0s token create --role=worker工作节点上运行时,我遇到了与您相同的错误。

您需要在节点上运行此命令

接下来,您需要创建一个工作节点将用于加入集群的加入令牌。该令牌是从控制节点生成的。

首先,您需要k0s token create --role=worker节点上运行以获取令牌,然后在工作节点上使用此令牌

在工作节点上,发出以下命令。

k0s worker <login-token> 

所以:

  • 使用在服务器上生成令牌k0s token create --role=worker
  • 在工人上使用这个令牌k0s worker <login-token>

在我的情况下,我还需要在两个命令之前添加,sudo所以它们看起来像sudo k0s token create --role=workersudo k0s worker <login-token>

你写了:

但是,我不确定这是否正确(k0s甚至是用 kubeadm 引导的吗??)。

不,它们是两个不同且独立的解决方案。

于 2022-01-12T18:03:35.767 回答