k8s工作节点出现/etc/kubernetes/pki/ca.crt already exists /etc/kubernetes/kubelet.conf already exists

将工作节点加入主节点报一下错误:

error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable–etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR FileAvailable–etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...
To see the stack trace of this error execute with --v=5 or higher

1、先执行 kubeadm reset,重新初始化节点配置:

kubeadm reset

2、再次执行join kubeadm join --token xxxxx master_ip:6443 --discovery-token-ca-cert-hash sha256:xxxx

### 创建 Kubernetes PKI 目录结构并传输必要文件 为了在远程服务器 `k8s-master02` 上创建 Kubernetes PKI 目录结构并传输必要的证书和密钥文件,可以按照如下方法操作: #### 使用 SSH 执行命令 可以通过 SSH 远程执行命令来创建所需的目录结构。假设本地机器上有这些证书和密钥文件,并希望将其上传至 `/etc/kubernetes/pki` 路径下。 ```bash ssh user@k8s-master02 'sudo mkdir -p /etc/kubernetes/pki' ``` 这条命令会在目标主机上作为超级用户权限创建指定路径下的所有不存在的父级子目录[^1]。 #### 复制文件到远程服务器 利用 `scp` 工具能够安全地将本地文件拷贝给另一台计算机上的特定位置。这里展示如何把本地的一系列 CA 文件发送过去: ```bash scp ca.crt ca.key apiserver.crt apiserver.key user@k8s-master02:/tmp/ ``` 这会先把这些文件临时放置于对方系统的 `/tmp/` 下面以便后续处理[^4]。 #### 移动文件到最终目的地 再次借助 SSH 来完成最后一步——移动已传送过来的数据到达正确的位置并且设置适当访问控制列表(ACL),确保只有授权进程能读取它们: ```bash ssh user@k8s-master02 ' sudo mv /tmp/ca.* /tmp/apiserver.* /etc/kubernetes/pki/; sudo chown root:root /etc/kubernetes/pki/*; sudo chmod 600 /etc/kubernetes/pki/* ' ``` 上述脚本不仅迁移了文件还调整其所有权以及保护级别以匹配官方推荐做法[^3]。 通过这种方式即可顺利完成整个流程而不需要手动登录远端设备逐一敲入指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值