如何设置kubeapi服务器以允许来自集群外部的kubectl

时间:2018-06-19 14:35:57

标签: authentication kubernetes

我只有一个主节点,正在运行多节点kubernetes。效果很好。但是我想允许从主服务器外部运行kubectl命令。例如,如何从笔记本电脑运行kubectl get节点?

如果在笔记本电脑上安装kubectl,则会出现以下错误: 错误:必须为kubernetes-admin指定client-key-data或client-key,才能使用clientCert身份验证方法

我该如何处理。我已经阅读了kubernetes授权文档,但我必须说这对我有点希腊。我正在运行1.10.2版。

谢谢。

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分:0)

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

kubectl将自动从配置文件中提取证书。