【问题标题】:How can I setup kubeapi server to allow kubectl from outside the cluster如何设置 kubeapi 服务器以允许来自集群外部的 kubectl
【发布时间】:2018-06-19 14:35:57
【问题描述】:

我有一个主,多节点 kubernetes 正在运行。它工作得很好。但是我想允许从主服务器外部运行 kubectl 命令。例如,如何从我的笔记本电脑运行 kubectl get node?​​p>

如果我在笔记本电脑上安装 kubectl,我会收到以下错误: 错误:必须为 kubernetes-admin 指定 client-key-data 或 client-key 才能使用 clientCert 认证方法

我该怎么做。我已经阅读了 kubernetes 授权文档,但我必须说这对我来说有点希腊化。我正在运行 1.10.2 版。

谢谢。

【问题讨论】:

    标签: authentication kubernetes


    【解决方案1】:

    扩展@sfgroups答案:

    您正在管理的所有Kubernetes 集群的配置 存储在 $HOME/.kube/config 文件中。如果您在主节点上有该文件, 简单的方法是将其复制到本地机器上的 $HOME/.kube/config 文件中。 可以选择其他地方,然后通过环境值指定位置KUBECONFIG

    export KUBECONFIG=/etc/kubernetes/config
    

    或者改用--kubeconfig命令行参数。

    云提供商通常让您可以从 Web 界面或通过云管理命令。

    对于GCP

    gcloud container clusters get-credentials NAME [--region=REGION | --zone=ZONE, -z ZONE] [GCLOUD_WIDE_FLAG …]

    对于Azure

    az login -u yourazureaccount -p yourpassword
    az acs kubernetes get-credentials --resource-group=<cluster-resource-group> --name=<cluster-name>
    

    如果集群是使用Kops 实用程序创建的,您可以通过以下方式获取配置文件:

    kops export kubeconfig ${CLUSTER_NAME}
    

    【讨论】:

    • 嗨,我确实这样做了,但按照建议再次复制了它,但事实证明我还需要运行 --username 。我使用 kubeadm 进行设置:kubectl get nodes --username kubernetes-admin --kubeconfig ~/.kube/config
    【解决方案2】:

    从您的主副本 /root/.kube 目录到您的笔记本电脑 C:\Users\.kube 位置。

    kubectl 会自动从配置文件中获取证书。

    【讨论】:

      猜你喜欢
      • 2016-02-23
      • 2012-04-15
      • 2019-05-10
      • 2018-08-20
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多