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

多个 Kubernetes 版本

本主题介绍了如何列出可用的 Kubernetes 版本并部署具有非默认 Kubernetes 版本的工作负载集群。

关于 Kubernetes 版本

具有独立管理集群的 Tanzu Kubernetes Grid 的每个版本都提供一个默认版本和两个非默认版本的 Kubernetes,您可以通过运行 tanzu kubernetes-release get 列出这些版本。

Tanzu Kubernetes Grid 管理具有 Tanzu Kubernetes 版本 (TKr) 对象的 Kubernetes 版本。TKr 指定与 TKr 中定义的 Kubernetes 版本兼容的操作系统映像、核心 Kubernetes 组件和引导程序包。运行具有默认或非默认 Tkr 的 tanzu cluster create 时,Tanzu Kubernetes Grid 使用 TKr 中指定的组件和引导软件包创建集群。它还会读取集群配置文件,以确定创建集群时要使用的兼容操作系统映像。

有关支持的 Kubernetes 版本的完整列表,请参见《VMware Tanzu Kubernetes Grid 2.3 发行说明》中的 Tanzu Kubernetes Grid v2.3 中支持的 Kubernetes 版本

列出可用版本

要列出所有可用的 Kubernetes 版本及其当前兼容性和升级状态,请使用可选的版本匹配参数运行 tanzu kubernetes-release get,例如:

  • 要列出所有版本,请运行 tanzu kubernetes-release get
  • 要列出与 v1.24.17 匹配的所有版本,请运行 tanzu kubernetes-release get v1.24.17
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.24.17---vmware.1-tkg.1  v1.24.17+vmware.1-tkg.1  True        True
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.2-tkg.1   v1.26.8+vmware.1-tkg.1   True        True

列出可用升级

要发现可用于特定工作负载集群的 Tkr 版本,请使用集群的全名运行 tanzu cluster available-upgrades get,例如:

tanzu cluster available-upgrades get my-cluster

激活或停用 Tanzu Kubernetes 版本

可以激活或停用 TKr。要激活 TKr,请执行以下操作:

tanzu kubernetes-release activate TKR-NAME

例如:

tanzu kubernetes-release activate v1.25.13---vmware.1-tkg.1

要停用 TKr,请执行以下操作:

tanzu kubernetes-release deactivate TKR-NAME

例如:

tanzu kubernetes-release deactivate v1.25.13---vmware.1-tkg.1

部署具有非默认 Kubernetes 版本的集群

每个 Tanzu Kubernetes Grid 版本都提供 Kubernetes 的默认版本。Tanzu Kubernetes Grid v2.3 的默认版本为 Kubernetes v1.26.8。

上游 Kubernetes 发布修补程序或新版本时,VMware 会在公用注册表中发布修补程序或新版本,Tanzu Kubernetes 发布控制器会将其导入管理集群。这样,tanzu CLI 便可以根据新版本创建集群。

  • 要列出可用的 Kubernetes 版本,请参见上面的可用 Kubernetes 版本
  • 要部署运行非默认版本的 Kubernetes 的集群,请执行以下步骤。

将 Kubernetes 版本发布到基础架构

在 vSphere 和 Azure 上,您需要执行其他步骤,然后才能部署运行非默认 Kubernetes 版本的集群:

  • vSphere:将相应的基础映像模板 OVA 文件导入 vSphere,然后将其转换为虚拟机模板。有关将基础 OVA 文件导入到 vSphere 的信息,请参见将基础映像模板导入到 vSphere

  • Azure:运行 Azure CLI 命令以接受基础操作系统版本的许可证。接受许可证后,未来可以跳过此步骤:

    1. tanzu kubernetes-release get 命令输出中列出的目标 Kubernetes 版本转换为其 Azure 映像 SKU,如下所示:
      • 将前导 v 更改为 k8s-
      • 将版本号中的 . 更改为 dot
      • 将后面的 +vmware.* 更改为 -ubuntu-2004,以指定 Ubuntu v20.04(Azure 上所有 Tanzu Kubernetes Grid 虚拟机的默认操作系统版本)。
      • 示例:k8s-1dot26dot8-ubuntu-2004k8s-1dot25dot13-ubuntu-2004
    2. 运行 az vm image terms accept。例如:

      az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot26dot8-ubuntu-2004
      
  • Amazon Web Services (AWS):无需操作。包含受支持 Kubernetes 版本的 Amazon Linux 2 Amazon 计算机映像 (AMI) 将公开提供给所有受支持 AWS 地理区域中的所有 AWS 用户。Tanzu Kubernetes Grid会自动为指定的 Kubernetes 版本使用相应的 AMI。

部署 Kubernetes 集群

要部署运行非默认 Kubernetes 版本的工作负载集群,请执行以下操作:

  1. 如果要部署基于计划的集群,请将环境变量 ALLOW_LEGACY_CLUSTER 设置为 true

    export ALLOW_LEGACY_CLUSTER=true
    
  2. 如果要部署集群的 Kubernetes 修补程序版本低于支持的 Kubernetes 版本中列出的其次要版本支持的最新修补程序版本,请在 tkg-system 命名空间中为其 TKr 创建 ConfigMap 对象:

    1. tkg-system 命名空间中创建 ConfigMap 对象定义,其中列出了较旧的 TKr:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        namespace: tkg-system
        name: TKR-CONFIG-NAME
        labels:
          run.tanzu.vmware.com/additional-compatible-tkrs: ""
      data:
        tkrVersions: |
            - TKR-VERSON-1
            - TKR-VERSON-2
      

      其中,TKR-CONFIG-NAME 是任何合法对象名称,例如 tkg-v2.3.1TKR-VERSON-* 值是 tanzu kubernetes-release get 列出的旧 TKr 版本,例如 v1.24.14--vmware.1-tkg

    2. 创建 ConfigMap 对象:

      kubectl apply -f old-tkrs-config.yaml
      
  3. 要部署的工作负载集群的 Kubernetes 版本不是您的 Tanzu Kubernetes Grid 版本的默认版本,请在 --tkr 选项中指定 Tanzu Kubernetes 版本。例如,要部署 Kubernetes v1.25.13 集群,请运行:

    tanzu cluster create my-1-25-13-cluster --tkr v1.25.13---vmware.1-tkg
    

有关如何创建工作负载集群的更多详细信息,请参见创建工作负载集群

使用自定义计算机映像部署集群

对于操作系统版本、Kubernetes 版本和目标基础架构的常见组合,具有独立管理集群的 Tanzu Kubernetes Grid 提供了默认计算机映像。您可以选择指定自定义计算机映像,包括您自己构建的映像。

以下几节介绍了如何使用备用或自定义构建的计算机映像部署集群:

使用备用计算机映像

在集群配置文件中,设置 OS_NAMEOS_VERSIONOS_ARCH 以指定基础计算机映像,例如 ubuntu20.04photon3amd64。这些默认为 VMware 分发的操作系统映像,但您也可以指定自己的备用操作系统映像以用于集群节点:

  1. 按照将基础映像模板导入到 vSphere 中所述,将映像上载到 vSphere。

  2. 根据您的映像是否与由 VMware 分发的现有计算机映像共享相同的操作系统版本,执行以下操作之一:

    • 如果要指定与现有 TKr 具有相同操作系统名称、版本和架构的备用映像以及 VMware 分发的映像,请编辑其 OSImage 对象,例如:

      kubectl edit OSImage v1.26.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
      
    • 否则,使用现有的 OSImage 对象定义作为模板创建并应用新的 OSImage 对象。将其 metadata.namespec.image.ref.version 值设置为 OVA 文件名。

  3. OSImage 对象的 spec.image.ref 块中,添加标识符字段和值。例如,要在 VMware 分发的 Ubuntu 20.04 映像上启用 Kubernetes v1.26.4 的替代方法,请执行以下操作:

    apiVersion: run.tanzu.vmware.com/v1alpha3
    kind: OSImage
    metadata:
      creationTimestamp: "2023-06-02T06:08:35Z"
      generation: 2
      labels:
        image-type: ova
        os-arch: amd64
        os-name: ubuntu
        os-type: linux
        ...
    spec:
      image:
        ref:
          MY-FIELD: MY-VALUE
          version: v1.26.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.4+vmware.1
      os:
        arch: amd64
        name: ubuntu
        type: linux
        version: "2004"
    

    其中,MY-FIELDMY-VALUE 是设置为包含在 Cluster 对象规范中的标识符字段和值。

    • MY-VALUE 长度必须为 0-63 个字符,并且可以为空,否则它必须以字母数字字符开头和结尾,并且包含字母数字、短划线 (-)、下划线 (_) 或点 (.)。
    • TKG 将这些值复制到 OSImage 对象metadata.labels 设置中,其格式为 ova-MY-FIELD: MY-VALUE
  4. 要在集群中使用备用计算机映像,请编辑 Cluster 对象,以将设置 ova-MY-FIELD=MY-VALUE 添加到将使用该映像的集群节点的 metadata.annotations

    • 对于控制平面节点,在 topology.controlPlane 下编辑 metadata.annotations
    • 对于工作节点,在 topology.workers.machineDeployments 下编辑将使用该映像的计算机部署的 metadata.annotations
    • 例如:

      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
      

构建和使用自定义计算机映像

您可以构建自己的计算机映像以用于集群节点。执行此操作的原因包括:

  • 在 VMware 支持但不分发的基础操作系统(如 Red Hat Enterprise Linux (RHEL) v8)上创建集群。
  • 要将其他软件包安装到基础计算机映像中,或者按照映像生成器文档中的自定义中所述对其自定义。

有关说明,请参见构建计算机映象

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