使用 SSH 连接到集群节点

本页面介绍如何通过 SSH 连接到 VMware 上的 Anthos 集群 (GKE On-Prem) 节点。

准备工作

要完成这些步骤,您需要用户集群和管理员集群的 kubeconfig 文件的位置。默认情况下,这些文件存储在您创建管理员集群和用户集群的目录中。如需详细了解 kubeconfig,请参阅 GKE 文档中的为 kubectl 配置集群访问权限

获取集群节点的 IP 地址

获取用户集群节点的 IP 地址:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide

其中,[USER_CLUSTER_KUBECONFIG] 是用户集群的 kubeconfig 文件的路径。

获取管理员集群节点的 IP 地址:

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide

其中,[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。

对于任一命令,请注意 INTERNAL-IP 字段。这些是节点 IP 地址。 NAME 字段包括用户集群的名称,并附带唯一 ID。例如,名为 my-user-cluster-12345678-abcdef 的节点属于用户集群 my-user-cluster

使用 SSH 连接到用户集群节点

获取用户集群的 SSH 密钥:

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n [USER_CLUSTER_NAME] ssh-keys \
-o jsonpath='{.data.ssh\.key}' | base64 -d > \
~/.ssh/[USER_CLUSTER_NAME].key && chmod 600 ~/.ssh/[USER_CLUSTER_NAME].key

其中:

  • [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。

  • [USER_CLUSTER_NAME] 是您的用户集群的名称。此名称是在创建用户集群时指定的。

上述命令会执行以下步骤:

  • 在管理员集群中,获取 [USER_CLUSTER_NAME] 命名空间中名为 ssh-keys 的 Secret 的 ssh.key 字段。

  • 对密钥进行 Base64 解码。

  • 将解码后的密钥存储在文件 ~/.ssh/[USER_CLUSTER_NAME].key 中。

  • 为密钥文件设置适当的访问权限。

使用密钥通过 SSH 连接到用户集群节点:

ssh -i ~/.ssh/[USER_CLUSTER_NAME].key ubuntu@[USER_NODE_IP]

其中,[USER_NODE_IP] 是您之前收集的用户集群节点的内部 IP 地址。

使用 SSH 连接到管理员集群节点

获取管理员集群的 SSH 密钥:

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n kube-system sshkeys \
-o jsonpath='{.data.vsphere_tmp}' | base64 -d > \
~/.ssh/admin-cluster.key && chmod 600 ~/.ssh/admin-cluster.key

其中,[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。

上述命令会执行以下步骤:

  • 在管理员集群中,获取 kube-system 命名空间中名为 sshkeys 的 Secret 的 vsphere_tmp 字段。

  • vsphere_tmp 字段(密钥)进行 Base64 解码。

  • 将解码后的密钥存储在文件 ~/.ssh/admin-cluster.key 中。

  • 为密钥文件设置适当的访问权限。

使用密钥通过 SSH 连接到管理员集群节点:

ssh -i ~/.ssh/admin-cluster.key ubuntu@[ADMIN_NODE_IP]

其中,[ADMIN_NODE_IP] 是您之前收集的管理员集群节点的内部 IP 地址。