本页面介绍如何通过 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 地址。