为什么 kubectl 与 sudo 有不同的行为?
Why does kubectl have different behavior with sudo?
运行 kubectl get pods
用 sudo:
sudo kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
运行 作为普通用户:
kubectl get pods
No resources found.
默认情况下,kubectl 在 ~/.kube/config(或指向 $KUBECONFIG 的文件)中查找以确定要连接的服务器。当 运行 作为 root 命令时,您的主目录和环境是不同的。当找不到连接信息时,kubectl 默认为 localhost:8080
普通用户会运行这些命令:
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
这会在您的普通用户主目录中复制配置文件,这就是为什么您能够从普通主机而不是 sudo 获得连接的原因。
运行 kubectl get pods
用 sudo:
sudo kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
运行 作为普通用户:
kubectl get pods
No resources found.
默认情况下,kubectl 在 ~/.kube/config(或指向 $KUBECONFIG 的文件)中查找以确定要连接的服务器。当 运行 作为 root 命令时,您的主目录和环境是不同的。当找不到连接信息时,kubectl 默认为 localhost:8080
普通用户会运行这些命令:
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
这会在您的普通用户主目录中复制配置文件,这就是为什么您能够从普通主机而不是 sudo 获得连接的原因。