【问题标题】:Config not found: /etc/kubernetes/admin.conf -- After setting up kubeadm worker node找不到配置:/etc/kubernetes/admin.conf -- 设置 kubeadm 工作节点后
【发布时间】:2021-05-18 15:28:43
【问题描述】:
按照this tutorial,我为我的集群设置了一个工作节点。但是,在运行join 命令并尝试kubectl get node 来验证节点是否已连接后,我遇到了以下错误
W0215 17:58:44.648813 3084402 loader.go:223] Config not found: /etc/kubernetes/admin.conf
The connection to the server localhost:8080 was refused - did you specify the right host or port?
在/etc/kubernetes/ 中检查admin.conf 的存在表明它不存在。我确保$HOME/.kube/config 也很清楚。为什么 join 命令没有创建 admin.conf 文件?
【问题讨论】:
标签:
kubernetes
kubectl
kubeadm
kubelet
【解决方案1】:
TLDR
- 使用 sudo 运行
join
mv /etc/kubernetes/kubelet.conf /etc/kubernetes/admin.conf
经过一番修改,我意识到这是权限错误和生成的正确文件名称不正确的组合。
而不是裸运行kubeadm join ...,使用 sudo 运行允许该命令在/etc/kubernetes 中创建必要的文件
sudo kubeadm join <MASTER_IP:PORT> --token <TOKEN> --discovery-token-ca-cert-hash <HASH>
但是,这不会生成admin.conf,但会创建kubelet.conf。我不确定为什么会发生这种情况,也找不到有关此行为的任何文档,但是使用以下参数运行 kubectl 解决了我的问题
kubectl get nodes --kubeconfig /etc/kubernetes/kubelet.conf
为了方便起见,此时将 kubelet.conf 重命名为 admin.conf。