管理您的管理集群

本主题介绍了如何从同一引导计算机管理多个管理集群,包括由 Tanzu Kubernetes Grid 部署到 vSphere、Azure 或 Amazon Web 服务 (AWS) 的管理集群,以及指定为 Tanzu Kubernetes Grid 管理集群的 vSphere with Tanzu 主管。

重要

Tanzu Kubernetes Grid v2.4.x 是支持在 AWS 和 Azure 上管理独立 TKG 管理集群的最后一个 TKG 版本。Tanzu Kubernetes Grid v2.5 版本将移除在 AWS 和 Azure 上管理独立 TKG 管理集群的功能。

从现在开始,VMware 建议您使用 Tanzu Mission Control 创建本机 AWS EKS 和 Azure AKS 集群。但是,在 AWS 和 Azure 上管理现有的独立 TKG 管理集群仍完全受 TKG v2.4.x 及以下版本支持。

有关详细信息,请参见《VMware Tanzu Kubernetes Grid v2.4 发行说明》中的弃用 AWS 和 Azure 上的 TKG 管理和工作负载集群

列出管理集群并更改上下文

要列出可用的管理集群并查看您当前登录的管理集群,请在引导计算机上运行 tanzu context use

tanzu context use
  • 要更改当前登录上下文,请使用向上和向下箭头键突出显示新的管理集群,然后按 Enter
  • 要保留当前上下文,请按 Enter 而不更改突出显示。
注意

要登录到上下文,必须使用 tanzu context create 命令创建上下文。

例如,如果您有两个管理集群:my-vsphere-mgmt-clustermy-aws-mgmt-cluster,则当前已登录到 my-vsphere-mgmt-cluster

$ tanzu context use
? Select a server  [Use arrows to move, type to filter]
> my-vsphere-mgmt-cluster  ()
 my-aws-mgmt-cluster      ()
 + new server

管理集群:kubectlkubeconfig

运行 tanzu context use 以更改 Tanzu CLI 上下文时,Tanzu Kubernetes Grid 不会自动更改 kubectl 上下文。另外,创建工作负载集群时,Tanzu Kubernetes Grid 不会自动将 kubectl 上下文设置为工作负载集群。要更改 kubectl 上下文,请使用 kubectl config use-context 命令。

默认情况下,Tanzu Kubernetes Grid 在引导计算机上的以下文件中保存集群上下文信息:

  • 管理集群上下文~/.kube-tkg/config
  • 工作负载集群上下文~/.kube/config

请参见管理集群详细信息

要查看管理集群的详细信息,请执行以下操作:

  1. 运行 tanzu context use 以登录到管理集群,如列出管理集群并更改上下文中所述。

    tanzu context use
    
  2. 运行 tanzu mc get

    tanzu mc get
    
    NAME         NAMESPACE   STATUS   CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    mc-test-cli  tkg-system  running  3/3           3/3      v1.27.5+vmware.1  management  prod  v1.27.5---vmware.2-tkg.1
    
    
    Details:
    
    NAME                                                         READY  SEVERITY  REASON  SINCE  MESSAGE
    /mc-test-cli                                                 True                     2d1h
    ├─ClusterInfrastructure - VSphereCluster/mc-test-cli-jjtpf   True                     2d1h
    ├─ControlPlane - KubeadmControlPlane/mc-test-cli-mffw9       True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-5zcbj                          True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-fs6zh                          True                     2d1h
    │ └─Machine/mc-test-cli-mffw9-jlwnm                          True                     2d1h
    └─Workers
      ├─MachineDeployment/mc-test-cli-md-0-tnz59                 True                     15h
      │ └─Machine/mc-test-cli-md-0-tnz59-64bdc75d94-gtg54        True                     2d1h
      ├─MachineDeployment/mc-test-cli-md-1-2d26b                 True                     15h
      │ └─Machine/mc-test-cli-md-1-2d26b-776885b84-6hzkj         True                     2d1h
      └─MachineDeployment/mc-test-cli-md-2-fs824                 True                     15h
        └─Machine/mc-test-cli-md-2-fs824-7bfd7b9c7b-c7n95        True                     2d1h
    
    
    Providers:
    
      NAMESPACE                          NAME                            TYPE                    PROVIDERNAME     VERSION  WATCHNAMESPACE
      caip-in-cluster-system             infrastructure-ipam-in-cluster  InfrastructureProvider  ipam-in-cluster  v0.1.0
      capi-kubeadm-bootstrap-system      bootstrap-kubeadm               BootstrapProvider       kubeadm          v1.2.8
      capi-kubeadm-control-plane-system  control-plane-kubeadm           ControlPlaneProvider    kubeadm          v1.2.8
      capi-system                        cluster-api                     CoreProvider            cluster-api      v1.2.8
      capv-system                        infrastructure-vsphere          InfrastructureProvider  vsphere          v1.5.1
    

要查看更多选项,请运行 tanzu mc get --help。Tanzu CLI 别名 mcmanagement-cluster 的缩写。

将现有管理集群添加到 Tanzu CLI

Tanzu CLI 允许您登录到其他人创建的管理集群。要登录,可以使用本地 kubeconfig 详细信息或服务器端点选项。

要使用本地 kubeconfig 登录到现有管理集群,请执行以下操作:

  1. 运行 tanzu context use,使用向下箭头键突出显示 + 新服务器 (+ new server),然后按 Enter

    tanzu context use
    
    ? Select a server + new server
    
  2. 出现提示时,选择本地 kubeconfig(Local kubeconfig)作为登录类型,然后输入本地 kubeconfig 文件的路径、上下文和服务器名称。例如:

    ✔tanzu context use
    ? Select a server + new server
    ? Select login type Local kubeconfig
    ? Enter path to kubeconfig (if any) /Users/exampleuser/examples/kubeconfig
    ? Enter kube context to use new-mgmt-cluster-admin@new-mgmt-cluster
    ? Give the server a name new-mgmt-cluster
      successfully logged in to management cluster using the kubeconfig new-mgmt-cluster
    

要使用服务器端点 (Server endpoint) 选项登录到现有管理集群,请执行以下操作:

  1. 运行 tanzu context use,使用向下箭头键突出显示 + 新服务器 (+ new server),然后按 Enter

    tanzu context use
    ? Select a server + new server
    
  2. 出现提示时,选择服务器端点 (Server endpoint) 作为登录类型。

  3. 输入服务器端点 (Enter Server endpoint) 字段中,输入管理集群的 Kubernetes API 服务器 IP 地址。
  4. 为服务器命名 (Give the server a name) 字段中,输入服务器的名称,然后按 Enter
  5. 如果在管理集群上启用了身份管理,请在默认浏览器中打开的 Okta 登录 (Okta login) 页面中输入您的 Okta 凭据。您已登录到管理集群。
  6. 确认在 Tanzu CLI 上显示以下输出:
successfully logged in to management cluster by using the kubeconfig <server name>

从 Tanzu CLI 配置中删除管理集群

您可以将其他人创建的管理集群添加到 Tanzu CLI 实例,而在某些时候,您不再需要该集群。同样,如果您部署了一个管理集群,并且已通过运行tanzu mc delete 以外的方式从目标平台中删除该管理集群,该管理集群将继续显示在运行 tanzu context use 时 CLI 跟踪的管理集群列表中。在这些情况下,您可以从 Tanzu CLI 跟踪的管理集群列表中移除管理集群。

  1. 运行 tanzu context list,查看 Tanzu CLI 跟踪的管理集群的列表。

    tanzu context list
    

    您应该会看到自己部署或添加到 Tanzu CLI 的所有管理集群、其 kubeconfig 文件的位置及其上下文。

  2. 运行 tanzu context delete 命令以移除管理集群。

    tanzu context delete my-vsphere-mc
    

运行 tanzu context delete 命令会从 ~/.config/tanzu/config.yaml~/.kube-tkg/config.yaml 文件中移除集群详细信息。如果管理集群本身仍然存在,则不会将其删除。要删除管理集群而不是仅将其从 Tanzu CLI 配置中移除,请参见删除管理集群

更新 Tanzu CLI 配置中的管理集群证书

在引导计算机上,Tanzu CLI 使用本地存储的证书对管理集群进行身份验证。如果证书过期,在运行 tanzu CLI 命令时,您将看到失败的错误消息。

因此,当证书即将过期时,请按照以下步骤更新证书:

  1. 使用 tanzu mc get 获取管理集群的名称。

    tanzu mc get
    
  2. 获取集群配置数据:

    kubectl -n tkg-system get secrets CLUSTER-NAME-kubeconfig -o 'go-template={{ index .data "value"}}' | base64 -d > mc_kubeconfig.yaml
    

    其中,CLUSTER-NAME 是管理集群的名称。例如:

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: LS0tLS1CRUdJTiBD<redacted>
      server: https://192.168.100.90:6443
      name: tkg-mgmt
    contexts:
    - context:
      cluster: tkg-mgmt
      user: tkg-mgmt-admin
    name: tkg-mgmt-admin@tkg-mgmt
    current-context: tkg-mgmt-admin@tkg-mgmt
    kind: Config
    preferences: {}
    users:
    - name: tkg-mgmt-admin
      user:
      client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZ<redacted>
      client-key-data: LS0tLS1CRUdJTiBSU<redacted>`
    
  3. 从 Tanzu CLI 当前跟踪的管理集群列表中删除现有管理集群条目:

    tanzu context delete CLUSTER-NAME
    
  4. 使用 tanzu context create 命令添加包含更新的 kubeconfig 的新管理集群:

    tanzu context create --kubeconfig mc_kubeconfig.yaml --name CLUSTER-NAME --context CLUSTER-NAME-admin@CLUSTER-NAME
    

扩展管理集群

部署管理集群后,可以通过增加或减少其包含的节点虚拟机数量来纵向扩展或横向缩减管理集群。要扩展管理集群,请使用带以下一个或两个以下选项的 tanzu cluster scale 命令:

  • --controlplane-machine-count 可更改管理集群控制平面节点数。
  • --worker-machine-count 可更改管理集群工作节点数。

由于管理集群在 tkg-system 命名空间中运行,而不是在 default 命名空间中运行,因此在扩展管理集群时,还必须指定 --namespace 选项。

  1. 运行 tanzu context use,然后运行 tanzu cluster scale 以确保要扩展的管理集群是 Tanzu CLI 的当前上下文。
  2. 要将最初使用 3 个控制平面节点和 5 个工作节点部署的生产管理集群分别扩展到 5 个和 10 个节点,请运行以下命令:

    tanzu cluster scale MANAGEMENT-CLUSTER-NAME --controlplane-machine-count 5 --worker-machine-count 10 --namespace tkg-system
    

如果最初使用一个控制平面节点部署了开发管理集群,然后将其扩展到 3 个控制平面节点,Tanzu Kubernetes Grid 将在控制平面上自动启用堆叠的 HA。

重要

在 Tanzu Kubernetes Grid 操作运行时,请勿更改上下文或编辑 .kube-tkg/config 文件。

更新管理集群凭据 (vSphere)

要更新管理集群使用的 vSphere 凭据和选择性地更新其管理的所有工作负载集群,请参见《使用 Tanzu CLI 创建和管理 TKG 2.4 工作负载集群》中的更新集群凭据

管理 CEIP 参与

使用安装程序界面或 CLI 部署管理集群时,除非您指定了选择退出的选项,否则默认情况下将启用参与 VMware 客户体验提升计划 (CEIP)。如果您仍然选择加入该计划,管理集群会定期发送有关如何使用 Tanzu Kubernetes Grid 返回 VMware 的信息,以便我们可以在未来版本中进行改进。

有关 CEIP 的详细信息,请参见管理 CEIP 的参与

如果您在部署管理集群时选择退出 CEIP 后希望选择加入,或者如果您选择加入后希望选择退出,请参见《管理 CEIP 的参与》中的选择加入或选择退出 VMware CEIP以在部署后更改 CEIP 参与设置

在管理集群中创建命名空间

为了帮助您组织和管理开发项目,您可以选择将管理集群划分为 Kubernetes 命名空间。然后,可以使用 Tanzu CLI 将工作负载集群部署到管理集群中的特定命名空间。例如,您可能希望在专用命名空间中创建不同类型的集群。如果不创建其他命名空间,Tanzu Kubernetes Grid 将在 default 命名空间中创建所有工作负载集群。有关 Kubernetes 命名空间的信息,请参见 Kubernetes 文档

  1. 通过显示当前上下文,确保 kubectl 已连接到正确的管理集群上下文。

    kubectl config current-context
    
  2. 列出管理集群中当前存在的命名空间。

    kubectl get namespaces
    

    您将看到,管理集群已包含其提供的不同服务的多个命名空间:

    capi-kubeadm-bootstrap-system       Active   4m7s
    capi-kubeadm-control-plane-system   Active   4m5s
    capi-system                         Active   4m11s
    capi-webhook-system                 Active   4m13s
    capv-system                         Active   3m59s
    cert-manager                        Active   6m56s
    default                             Active   7m11s
    kube-node-lease                     Active   7m12s
    kube-public                         Active   7m12s
    kube-system                         Active   7m12s
    tkg-system                          Active   3m57s
    
  3. 使用 kubectl create -f 创建新的命名空间,例如用于开发和生产。

    这些示例使用 Kubernetes 文档中的 productiondevelopment 命名空间。

    kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
    
    kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
    
  4. 运行 kubectl get namespaces --show-labels 以查看新的命名空间。

    development                         Active   22m   name=development
    production                          Active   22m   name=production
    

删除管理集群中的命名空间

您需要先删除管理集群中的工作负载集群本身,才能删除其命名空间。您无法通过删除工作负载集群的管理集群命名空间来删除工作负载集群。

要删除管理集群中工作负载集群的命名空间,请执行以下操作:

  1. kubectl 的上下文设置为管理集群:

    kubectl config use-context MY-MGMT-CLUSTER@MY-MGMT-CLUSTER
    

    其中,MY-MGMT-CLUSTER 是管理集群的名称。

  2. 列出要删除的命名空间中运行的集群:

    tanzu cluster list -n NAMESPACE
    
  3. 按照删除工作负载集群的过程删除卷和服务,根据需要迁移工作负载,以及删除命名空间中的集群。

  4. 使用 kubectl 删除命名空间:

    kubectl delete namespace NAMESPACE
    

删除管理集群

要删除管理集群,请运行 tanzu mc delete 命令。

运行 tanzu mc delete 时,Tanzu Kubernetes Grid 会在引导计算机上创建一个临时 kind 清理集群来管理删除过程。删除过程完成后,将移除 kind 集群。

  1. AWS:确保 TKG 使用的 AWS 凭据仍然有效。它们可以是凭据配置文件或本地静态环境变量,如配置 AWS 帐户凭据中所述。

    • 无法使用 AWS 实例配置文件凭据删除管理集群。
    • 如果凭据已过期,管理集群节点可能会保留,如无法删除 AWS 上的管理集群中所述。
  2. 要查看所有管理集群,请运行 tanzu context use,如列出管理集群和更改上下文中所述。

  3. 如果存在不再需要的管理集群,请运行 tanzu mc delete

    您必须登录到要删除的管理集群。

    tanzu mc delete my-mgmt-cluster
    

    要在运行 tanzu mc delete 时跳过 yes/no 验证步骤,请指定 --yes 选项。

    tanzu mc delete my-mgmt-cluster --yes
    
  4. 如果管理集群中正在运行工作负载集群,则不会执行删除操作。

    在这种情况下,可以通过两种方式删除管理集群:

    • 运行 tanzu cluster delete 删除所有正在运行的集群,然后再次运行 tanzu mc delete
    • 使用 --force 选项运行 tanzu mc delete
    tanzu mc delete my-mgmt-cluster --force
    
重要

在 Tanzu Kubernetes Grid 操作运行时,请勿更改上下文或编辑 .kube-tkg/config 文件。

下一步操作

您可以使用 Tanzu Kubernetes Grid 开始将工作负载集群部署到不同的 Tanzu Kubernetes Grid 实例。有关信息,请参见《使用 Tanzu CLI 创建和管理 TKG 2.4 工作负载集群》中的创建工作负载集群

如果 vSphere 8 具有主管,则可以使用 Tanzu CLI 部署 TKG 2.x 集群。有关信息,请参见使用 Tanzu CLI 创建和管理 TKG 2.4 工作负载集群

check-circle-line exclamation-circle-line close-line
Scroll to top icon