可以 kubernetes-admin 用户身份连接到 TKG 服务 集群控制平面,以便执行管理任务和对集群问题进行故障排除。

置备的 Tanzu Kubernetes 集群的有效 kubeconfig 文件在 主管 上作为名为 TKGS-CLUSTER-NAME-kubeconfig 的密钥对象提供。可以使用此密钥以 kubernetes-admin 用户身份连接到集群控制平面。

过程

  1. 连接到 主管
  2. 将环境切换到置备了目标 TKG 集群的 vSphere 命名空间
    kubectl config use-context VSPHERE-NAMESPACE
  3. 查看命名空间中的密钥对象。
    kubectl get secrets
    该密钥名为 TKG-CLUSTER-NAME-kubeconfig
    kubectl config use-context tkg-cluster-ns
    Switched to context "tkg-cluster-ns".
    ubuntu@ubuntu:~$ kubectl get secrets
    NAME                                 TYPE                                 DATA   AGE
    ...
    tkg-cluster-1-kubeconfig            Opaque                                1      23h
    ...
    
  4. 通过运行以下命令对密钥进行解码。
    密钥采用 Base64 编码。对其进行解码:在 Linux 上,使用 base64 --decode(或 base64 -d);在 MacOS 上,使用 base64 --Decode(或 base64 -D);在 Windows 上,使用 联机工具
    kubectl get secret TKG-CLUSTER-NAME-kubeconfig -o jsonpath='{.data.value}' | base64 -d > tkgs-cluster-kubeconfig-admin
    此命令将对密钥进行解码,并将其写入到名为 tkgs-cluster-kubeconfig-admin 的本地文件中。使用 cat 命令验证文件内容。
  5. 以 Kubernetes 管理员身份使用解码后的 tkg-cluster-kubeconfig-admin 文件连接到 TKG 集群。
    有两种选项可以实现此操作。
    选项 描述
    --kubeconfig <path\to\kubeconfig> 使用 --kubeconfig 标记和本地 kubeconfig 文件的路径。例如,假设 kubeconfig 文件位于运行命令的同一目录中:kubectl --kubeconfig tkg-cluster-kubeconfig-admin get nodes
    KUBECONFIG 将 KUBECONFIG 环境变量设置为指向解码后的 kubeconfig 文件并运行 kubectl,例如 kubectl get nodes
    您应该会看到集群中的节点。
  6. 如果您是对 vSphere 命名空间 具有编辑权限的 Devops 用户,并且希望使用 Tanzu CLI 以管理员用户身份登录到 TKG 集群,请运行以下命令:
    tanzu cluster kubeconfig get CLUSTER-NAME --admin
    此命令将生成包含 kubernetes-control-plane(将绕过所有授权)的 cert/private key 的 kubeconfig。然后,您可以使用此 kubeconfig 登录到集群。请参见