【问题标题】:Use Kubectl access *existing* GCP cluster使用 Kubectl 访问 *existing* GCP 集群
【发布时间】:2022-07-10 02:32:46
【问题描述】:
我已经能够通过 helm 部署东西,甚至可以直接使用 docker push 到 GCP 容器。但我不知道如何让kubectl 访问 GCP 集群。当我通过kubectl 搜索访问 GCP 集群时,它总是谈论创建一个新集群。我已经有一个了。我还在学习这个;所以在这个过程中,我能够让它与服务而不是用户一起工作。但是,我想强制我的kubectl(尤其是)使用我的 GCP 管理员用户。这是一个个人的一次性帐户;我不会在更严重的环境中采用这种方法。
如何告诉kubectl,嘿,以joe@example.com 登录?就此而言,我如何显示它试图用来进行身份验证的任何凭据(用户、服务等)?
【问题讨论】:
标签:
google-kubernetes-engine
gcloud
kubectl
【解决方案1】:
检查gcloud auth list 是否输出正确的帐户。
您是否针对您的 GKE 集群进行了身份验证?
检查kubectl config get-contexts 是否输出正确的集群上下文。
您可以通过运行gcloud container clusters get-credentials <cluster name> --region <cluster region> --project <gcp project of cluster> 对您的集群进行身份验证
【解决方案2】:
要为 kubectl 存储集群信息,首先需要查看为 kubectl 配置的当前上下文。 Kubernetes 使用一个 config YAML 文件来存储集群认证,这个文件存储了一组称为上下文的访问参数;要查看此文件的内容,您可以使用以下命令:
kubectl config view
然后,我们需要检查为您的cluster 生成的kubeconfig file。
如果您还没有为您的集群生成kubeconfig 上下文,您可以运行以下命令:
gcloud container clusters get-credentials CLUSTER_NAME
生成 kubeconfig 后,您可以对集群运行单独的 kubectl 命令,因此您可以使用此命令将用户和密码添加到配置文件中:
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
注意:config-demo 必须替换为您的配置文件的名称。
如果您在 Kubernetes 中访问 kubectl 时需要更多帮助,可以查看此公共 document。