我正在尝试使用kubectl访问远程kubernetes集群。为了在kubeconfig文件中复制/粘贴集群身份证明,我尝试使用“~/.kube/config”命令进行访问,但出现错误,显示“无此文件或目录"。有没有人能告诉我为什么我会得到这个错误?kubectl是完美的工作。
qmb5sa221#
在我的例子中,我在. bashrc中将KUBECONFIG变量设置为“~/.kube/config”。该文件存在且具有正确的权限,但不知何故它没有被解析。结果我不得不使用${HOME}来代替~。这就成功了。
bq3bfh9z2#
如果您的kubectl在您的集群上正常工作,那么/kube/config文件应该在那里。启动以下命令时,您可以检查详细级别逐渐增加的文件的位置:
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生成配置:--展平[=假]:将生成的kubeconfig文件展开为自包含的输出(对于创建可移植的kubeconfig文件很有用)也有可能是在使用kubeadm引导群集时,您没有按照说明移动文件(:
kubectl config view --flatten
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
qcbq4gxm3#
要解决此问题,您需要先在工作站中创建一个群集。2这将生成***KUBECONFIG***变量集,并将其设置为“~/.kube/config”目录。或者,您可以使用--kubeconfig + kubeconfig文件的路径,其中
xlpyo6sf4#
我在windows上使用git bash时也遇到过这种情况,最后我用我的home目录的绝对路径替换了KUBECONFIG变量中的$HOME值。
export KUBECONFIG=/c/Users/<my user name>/.kube/config
对我很有效。
4条答案
按热度按时间qmb5sa221#
在我的例子中,我在. bashrc中将KUBECONFIG变量设置为“~/.kube/config”。该文件存在且具有正确的权限,但不知何故它没有被解析。结果我不得不使用${HOME}来代替~。这就成功了。
bq3bfh9z2#
如果您的
kubectl
在您的集群上正常工作,那么/kube/config
文件应该在那里。启动以下命令时,您可以检查详细级别逐渐增加的文件的位置:
有一种解决方法可让您使用
kubectl config view --flatten
生成配置:--展平[=假]:将生成的kubeconfig文件展开为自包含的输出(对于创建可移植的kubeconfig文件很有用)
也有可能是在使用kubeadm引导群集时,您没有按照说明移动文件(:
kubeadm init
输出的一部分:root
用户,则可以运行:如果您将kubectl与sudo一起使用,则将使用根路径中的
kube/config
。要了解更多阅读,请参阅以下内容:
qcbq4gxm3#
要解决此问题,您需要先在工作站中创建一个群集。2这将生成***KUBECONFIG***变量集,并将其设置为“~/.kube/config”目录。
或者,您可以使用--kubeconfig + kubeconfig文件的路径,其中
xlpyo6sf4#
我在windows上使用git bash时也遇到过这种情况,最后我用我的home目录的绝对路径替换了KUBECONFIG变量中的$HOME值。
对我很有效。