问题描述:

在调用kubectl命令时,出现以下错误:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
在这里插入图片描述

原因分析:

在执行kubectl时,首先进行本地封装,然后调用kube-apiserver执行对应命令,在这个过程中需要获取k8s集群的配置,默认为当前用户下.kube目录的config,但此时获取不到配置。

解决方案:

1)如果是k8s集群的master节点,且为root用户,可以执行以下命令:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

如果非root用户,可以执行以下命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

2)如果是k8s集群的node节点,可以需要从master节点拷贝admin.conf文件到node节点上:

scp root@master:/etc/kubernetes/admin.conf /etc/kubernetes/

如果是root用户,执行:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

如果不是root用户,执行:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐