https://www.vmware.com/products/vsphere.html.
背景介绍

vSphere with Kubernetes中有2层Kubernetes群集,如上图所示。在基础架构层(底层)称为“Supervisor Kubernetes群集”,服务层(上层)称为“ Tanzu Kubernetes群集”。两个集群都有主(Master)节点和工作(Worker)节点。在某些情况下,出于调试或其他配置原因,您可能需要通过SSH协议访问这些节点。本文将通过实战的方式,来一步步展示来如何获取各个层次的不同节点的访问地址和秘钥,主要包含下面两个方面的内容:
- 如何访问Supervisor Kubernetes集群的节点
- 如何访问Tanzu Kubernetes集群的节点
- 配置好Supervisor Kubernetes集群。请参考:Config a Supervisor Cluster
- 创建并配置好Supervisor Kubernetes集群的命名空间。请参考:Configure Supervisor Cluster Namespaces.
- 下载并安装好Kubernetes客户端根据kubectl和vSphere的插件。请参考:Download and Install the Kubernetes CLI Tools for vSphere
- 在命名空间里创建一个或多个Tanzu Kubernetes 集群。请参考:How to Create Tanzu Kubernetes Clusters.
访问Supervisor Kubernetes集群的节点
有两种获取Supervisor群集的节点名称和IP地址的方法。一种是通过vCenter Server Client控制台,另一种是通过“ kubectl”命令。
- 通过kubectl命令,以数据中心管理员的身份登录Supervisor 集群。
- 通过下面的命令来获得Supervisor群集各个节点的访问地址:
- 访问Supervisor群集中的Worker节点
Supervisor群集中的Worker节点是上面输出的最后三行。它们不是虚拟机,而是Esxi主机,这是vSphere with Kubernetes的最大的卖点之一。主机名和IP地址可在管理网络中访问,而数据中心管理员应该知道这些主机的密码。
4、Master节点是上述示例输出中的前三行。Master的节点名称是长数字字符串,此处显示的IP地址是私有的IP地址,在管理网络中不可访问。您可以从vCenter Server客户端中获取Master节点的更有意义的名称和可访问的IP地址。如下图所示,在vCenter Server控制台中,Supervisor群集的Master节点称为“ SupervisorControlPlanVM”,我们还可以获得可在管理网络中访问的网络接口。现在的问题是我们不知道访问这些主节点的密码:

5、为了获得Supervisor群集中的Master节点的密码,我们先要登录到vCenter Server的虚机中。通常来说,数据中心管理员应该会拥有vCenter Server的root用户的密码。先用root用户通过SSH登录vCenter Server,还需要运行一段脚本,才能获得我们所需要的密码:
通过上面的密码,可以用root用户访问任意的一个Master节点。
访问Tanzu Kubernetes集群的节点
- 通过kubectl命令,以数据中心管理员或者Namespace管理员的身份登录Supervisor 集群。
- 在Tanzu集群所在的命名空间里查看秘钥的信息,可以通过以下命令获得有关Tanzu集群跟SSH登录相关的秘钥信息,记住这个secret的名字,在下面的例子输出中是“my-tanzu-cluster-ssh”。
- 查看Tanzu集群的节点信息和IP地址
- 上面输出的IP地址是内网的私有地址,我们从管理网络段是无法访问的,因此我们需要一个跳板机。事实上在上节中,Supervisor集群的Master节点可以作为跳板机。但这样做比较麻烦,需要较多的步骤。下面的方法可以通过kubectl创建一个跳板机,并且将访问Tanzu集群节点的私钥也一起放在跳板机里,就可以方便的访问Tanzu集群中的各个节点:
- 部署这个跳板机,并且通过系统用户”vmware-system-user”和预制的SSH私钥去连接Tanzu集群的各个节点:
总结
在各种开发部署的环境下,总有一些场景需要登录到Master或Worker节点中,去查看日志信息,服务状态,甚至需要修改配置文件。本文通过一步步操作来说明如何来完成这些任务。