【问题标题】:Why does kubectl have different behavior with sudo?为什么 kubectl 与 sudo 有不同的行为?
【发布时间】:2019-02-07 15:10:42
【问题描述】:

使用 sudo 运行 kubectl get pods

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 --kubeconfig=/home/admin/.kube/config

标签: kubernetes kubectl


【解决方案1】:

默认情况下,kubectl 查看 ~/.kube/config(或指向 $KUBECONFIG 的文件)来确定要连接的服务器。以 root 身份运行命令时,您的主目录和环境会有所不同。当没有找到连接信息时,kubectl 默认为 localhost:8080

【讨论】:

    【解决方案2】:

    您可以从普通用户运行这些命令:

    sudo cp /etc/kubernetes/admin.conf $HOME/
    sudo chown $(id -u):$(id -g) $HOME/admin.conf
    export KUBECONFIG=$HOME/admin.conf
    

    这会将配置文件复制到您的普通用户主目录中,这就是为什么您能够从普通主机而不是从 sudo 获得连接的原因。

    【讨论】:

    • /etc/kubernetes/admin.conf 来自哪里?
    • kubernetes 默认目录。
    • 可能直接在主节点上,但不在任何客户端上。此外,自定义 Kubernetes 节点上的位置可能会有所不同(例如,我们的集群不知道该位置)。
    猜你喜欢
    • 2011-06-25
    • 2022-07-07
    • 2021-12-14
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多