使用 SSH 连接到集群节点

本页面介绍如何通过 SSH 连接到 Google Distributed Cloud 集群节点。

本页面适用于管理底层技术基础设施生命周期的 IT 管理员和运维人员。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务

准备工作

要完成这些步骤,您需要用户集群和管理员集群的 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 anthos@[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 anthos@[ADMIN_NODE_IP]

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