我正在尝试使用 kubectl 访问远程 kubernetes 集群。为了在 kubeconfig 文件中复制/粘贴集群凭据,我尝试使用“~/.kube/config”命令进行访问,但出现错误“没有这样的文件或目录”。
有人可以告诉我为什么会出现此错误吗? kubectl 运行完美。
就我而言,我在 .bashrc 中将 KUBECONFIG 变量设置为“~/.kube/config”。该文件存在并且具有正确的权限,但未以某种方式得到解决。结果我不得不使用 ${HOME} 代替 ~。这就成功了。
如果您的
kubectl
在您的集群上正常工作,那么 /kube/config
文件应该在那里。
您可以在启动命令时以越来越详细的级别检查文件的位置:
➜ ~ kubectl get pods -v=6
...] Config loaded from file: /home/thomas/.kube/config ◄ ◄ ◄ ◄ ◄
...] Starting client certificate rotation controller
...] GET https://172.17.0.4:8443/api/v1/namespaces/default/pods?limit=500 200 OK in 11 milliseconds
有一种解决方法可以让您使用
kubectl config view --flatten
生成配置:
--flatten[=false]:将生成的 kubeconfig 文件压平为自包含输出(对于创建可移植的 kubeconfig 文件很有用)
还有一种可能是,在使用 kubeadm 启动集群时,您没有按照说明相应地移动文件(:
要使 kubectl 适用于非 root 用户,请运行以下命令, 这也是
kubeadm init
输出的一部分:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
或者,如果您是
root
用户,您可以运行:
export KUBECONFIG=/etc/kubernetes/admin.conf
如果您将 kubectl 与 sudo 一起使用,您将使用根路径中的
kube/config
。
欲了解更多内容,请查看以下内容:
要解决此问题,您首先需要在工作站中创建一个集群。这将生成设置为“~/.kube/config”目录的 KUBECONFIG 变量。
或者您可以使用 --kubeconfig + kubeconfig 文件的路径
这发生在我身上,在 windows 上使用 git bash。 我最终将 KUBECONFIG 变量中的 $HOME 值替换为我的主目录的绝对路径。 即
export KUBECONFIG=/c/Users/<my user name>/.kube/config
它对我有用。
安装kubectl后,我的Windows 10机器上没有任何配置文件。我已经创建了一个配置文件并手动添加我的集群和用户信息。
我设置了一个新的,如下所示:
$env:KUBECONFIG="C:\Users\Your_username.kub