不使用gcloud工具将kubectl的本地实例连接到GKE集群?

Rot*_*eti 8 kubernetes google-kubernetes-engine kubectl

有没有人知道如何将本地实例连接kubectl到Google Kubernetes Engine(GKE)群集,而不在gcloud本地使用该工具?

例如:

如果您使用gcloud此命令的工具:

gcloud container clusters get-credentials NAME [--zone=ZONE, -z ZONE] [GCLOUD_WIDE_FLAG …]
Run Code Online (Sandbox Code Playgroud)

你会发现这样的用户~/.kube/config:

- name: gke_myproj_myzone
  user:
    auth-provider:
      config:
        access-token: TOKENSTRING
        cmd-args: config config-helper --format=json
        cmd-path: /google/google-cloud-sdk/bin/gcloud
        expiry: 2018-01-22 18:05:46
        expiry-key: '{.credential.token_expiry}'
        token-key: '{.credential.access_token}'
      name: gcp
Run Code Online (Sandbox Code Playgroud)

如您所见,gcloud工具提供的默认值要求glcoud工具作为身份验证提供程序登录到您的群集.

现在,我正在寻找的是一种连接kubectl到机器上的集群的方法,该集群尚未gcloud安装.

小智 8

实现此目的的最简单方法是将~/.kube/config文件(从经过 gcloud 身份验证的实例)复制到$HOME/.kube本地实例(笔记本电脑)中的此目录。

但首先,使用经过身份验证的实例,您必须按照本文档通过运行以下命令启用旧集群:

gcloud config set container/use_client_certificate True
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
Run Code Online (Sandbox Code Playgroud)

然后执行get-credentials命令,并复制文件。

gcloud container clusters get-credentials NAME [--zone=ZONE, -z ZONE] [GCLOUD_WIDE_FLAG …]
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须运行该get-credentials命令,并在每次身份验证令牌(保存在配置文件中)到期时复制配置文件。