可以使用 kubectl 的 vSphere 插件 连接到 TKG 集群,并使用 vCenter Single Sign-On 凭据进行身份验证。

登录到 Tanzu Kubernetes 集群后, kubectl 的 vSphere 插件 将为集群生成上下文。在 Kubernetes 中,配置上下文包含集群、命名空间和用户。可以在 .kube/config 文件中查看集群上下文。此文件通常称为 kubeconfig 文件。
注: 如果您有现有的 kubeconfig 文件,则该文件将附加每个集群上下文。 kubectl 的 vSphere 插件 采用 kubectl 自身使用的 KUBECONFIG 环境变量。请在运行 kubectl vsphere login ... 之前设置此变量,虽然此操作并非必需,但非常有用,因为这样可将信息写入新文件(而不是添加到当前 kubeconfig 文件)。

前提条件

从您的 vSphere 管理员处获取以下信息:

过程

  1. 要查看用于登录的命令语法和选项,请运行以下命令。
    kubectl vsphere login --help
  2. 要连接到 Tanzu Kubernetes 集群,请运行以下命令。
    kubectl vsphere login --server=SUPERVISOR-CLUSTER-CONTROL-PLANE-IP-OR-FQDN 
    --tanzu-kubernetes-cluster-name TKG-CLUSTER-NAME 
    --tanzu-kubernetes-cluster-namespace VSPHERE-NAMESPACE 
    --vsphere-username VCENTER-SSO-USER-NAME
    例如:
    kubectl vsphere login --server=10.92.42.137 
    --tanzu-kubernetes-cluster-name tkg-cluster-01 
    --tanzu-kubernetes-cluster-namespace tkg-cluster-ns 
    --vsphere-username [email protected]
    或者,如果已使用完全限定域名 (FQDN) 启用 主管
    kubectl vsphere login --server=wonderland.acme.com 
    --tanzu-kubernetes-cluster-name tkg-cluster-01 
    --tanzu-kubernetes-cluster-namespace tkg-cluster-ns 
    --vsphere-username [email protected]
    此操作将创建一个配置文件,其中包含用于向 Kubernetes API 进行身份验证的 JSON Web 令牌 (JWT)。
  3. 要进行身份验证,请输入您的 vCenter Single Sign-On 密码。
    如果操作成功,您会看到消息 Logged in successfully,您可以针对集群运行 kubectl 命令。如果命令返回 Error from server (Forbidden),通常此错误表示您没有所需的权限。
  4. 要获取可用的上下文列表,请运行以下命令:
    kubectl config get-contexts
    此命令将列出您有权访问的配置上下文。您会看到目标集群的配置上下文,如 tkg-cluster-01
  5. 要使用目标集群的上下文,请运行以下命令:
    kubectl config use-context CLUSTER-NAME
  6. 要列出集群节点,请运行以下命令:
    kubectl get nodes
    您将看到此集群中的控制平面节点和工作节点。
  7. 要列出所有集群 pod,请运行以下命令:
    kubectl get pods -A
    您将看到有权访问的所有 Kubernetes 命名空间中此集群的所有 pod。如果尚未部署任何工作负载,则不会在默认命名空间中看到任何 pod。