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

默认情况下,通过运行 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