This site will be decommissioned on December 31st 2024. After that date content will be available at techdocs.broadcom.com.

使用现有引导集群部署和删除管理集群

默认情况下,通过运行 tanzu mc create 部署管理集群时,Tanzu Kubernetes Grid 会在本地引导计算机上创建临时 kind 集群。然后,它使用本地集群在其目标云基础架构(vSphere、Amazon Web服务 (AWS) 或 Azure)上置备最终管理集群,并在管理集群成功部署后删除临时集群。运行 tanzu mc delete 删除管理集群会调用类似的过程,即创建、使用和移除临时的本地 kind 集群。

在某些情况下,您可能希望在部署或删除管理集群后保留本地集群。例如,检查集群中的对象或查看其日志。为此,您可以使用 CLI 选项 --use-existing-bootstrap-cluster--use-existing-cleanup-cluster 部署或删除管理集群。

使用这些选项时,Tanzu Kubernetes Grid 将跳过创建和删除本地 kind 集群,并且使用已有的预先存在的本地集群或为此创建新的本地集群。

注意

使用现有引导集群是一种高级用例,适用于经验丰富的 Kubernetes 用户。如果可能,强烈建议使用 Tanzu Kubernetes Grid 提供的默认 kind 集群来引导管理集群。

标识或创建本地引导集群

要在创建或删除管理集群期间保留本地 kind 集群,必须先在引导计算机上运行兼容的集群。通过标识或创建集群来确保这一点,如下面的小节中所述。

使用现有集群

要使用现有的本地集群,必须确保满足以下两个条件:

  • 该集群以前从未用于引导或删除管理集群。

  • 集群是使用 kind v0.11 或更高版本创建的。

    • 通过运行 docker ps 并将列出的 kindest:node 版本与 kind 发行说明中列出的版本相关联来检查此问题。

    • 背景:如果引导计算机使用在 2021 年 5 月 Linux 安全修补程序之后构建的 Linux 内核(例如,具有 Fedora 的 Linux 5.11 和 5.12),则引导集群必须由 kind 版本 v0.11 或更高版本创建。早期版本的 kind 尝试更改在最新 Linux 版本中设置为只读的文件,从而导致失败。从 4.9 开始,安全修补程序将向后移植到所有 LTS 内核,从而导致在发送操作系统更新时可能出现管理集群部署故障,包括适用于 Mac 操作系统上的 Docker 计算机以及适用于 Linux 的 Windows 子系统。

如果这两个条件都适用于当前本地集群,则可以使用该集群创建或删除管理集群。否则,必须按以下方式替换集群:

  1. 删除集群。

  2. 下载并安装新版本的 kind,如 kind 文档中所述。

  3. 创建 kind 集群,如下面的创建新集群部分所述。

创建新集群

要创建新的本地引导集群,请根据引导计算机的连接执行以下操作之一:

  • 完全联机环境

    创建集群:

    kind create cluster
    
  • Internet 受限环境

    1. 创建 kind 集群配置文件 kind.yml,如下所示:

      kind: Cluster
      apiVersion: kind.x-k8s.io/v1alpha4
      name: tkg-kind
      nodes:
      - role: control-plane
       # This option mounts the host docker registry folder into
       # the control-plane node, allowing containerd to access them.
       extraMounts:
         - containerPath: CONTAINER-CA-PATH
           hostPath: HOST-CA-PATH
      containerdConfigPatches:
      - |-
       [plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
         ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
      

      其中:

      • CONTAINER-CA-PATHkind 容器上的 Harbor CA 证书的路径,如 /etc/containerd/REGISTRY-FQDN
      • HOST-CA-PATH 是创建 kind 集群的引导虚拟机上的 Harbor CA 证书的路径,如 /etc/docker/certs.d/REGISTRY-FQDN
      • REGISTRY-FQDN 是 Harbor 注册表的名称。
      • CA.crt 是 Harbor 注册表的 CA 证书

      默认情况下,crashd 会查找名为 tkg-kind 的集群,因此将 kind 集群命名为 tkg-kind 以便在集群无法引导时轻松收集日志。

    2. 使用上述配置文件创建 kind 集群。

      kind create cluster --config kind.yml
      

使用现有引导集群部署管理集群

要部署具有现有引导集群的 Tanzu Kubernetes Grid 管理集群,请执行以下操作:

  1. 按照上述过程标识或创建本地引导集群

  2. kubectl 的上下文设置为本地引导集群:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. 通过运行带 --use-existing-bootstrap-cluster 选项的 tanzu mc create 命令部署管理集群:

    tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
    

    有关运行 tanzu mc create 的详细信息,请参见部署管理集群

删除具有现有引导集群的管理集群

要删除具有现有引导集群的 Tanzu Kubernetes Grid 管理集群,请执行以下操作:

  1. 按照上述过程标识或创建本地引导集群

  2. kubectl 的上下文设置为本地引导集群:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. 通过运行具有 --use-existing-cleanup-cluster 选项的 tanzu mc delete 命令删除管理集群:

    tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
    

    有关运行 tanzu mc delete 的详细信息,请参见删除管理集群

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