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 v2.4 版本資訊》中的 Tanzu Kubernetes Grid v2.4 中支援的 Kubernetes 版本

列出可用版本

若要列出所有可用的 Kubernetes 版本及其目前的相容性和升級狀態,請執行具有選用版本相符引數的 tanzu kubernetes-release get,例如:

  • 若要列出所有版本,請執行 tanzu kubernetes-release get
  • 若要列出與 v1.26.8 相符的所有版本,請執行 tanzu kubernetes-release get v1.26.8
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.1-tkg.1   v1.26.8+vmware.1-tkg.1   True        True
v1.27.5---vmware.2-tkg.1   v1.27.5+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.27.5---vmware.1-tkg.1

若要停用 TKr,請輸入:

tanzu kubernetes-release deactivate TKR-NAME

例如:

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

部署具有非預設 Kubernetes 版本的叢集

每個 Tanzu Kubernetes Grid 版本都會提供 Kubernetes 的預設版本。Tanzu Kubernetes Grid v2.4 的預設版本為 Kubernetes v1.27.5。

上游 Kubernetes 發行修補程式或新版本時,VMware 會將它們發佈於公用登錄中,Tanzu Kubernetes 版本控制器會將它們匯入至管理叢集。這可讓 Tanzu CLI 根據新版本建立叢集。

  • 若要列出可用的 Kubernetes 版本,請參閱上面的可用的 Kubernetes 版本
  • 若要部署執行 Kubernetes 非預設版本的叢集,請執行以下步驟。

將 Kubernetes 版本發佈到基礎結構

在 vSphere 和 Azure 上,您還需要另外執行一個步驟,才能部署執行 Kubernetes 非預設版本的叢集:

vSphere
將適當的基礎映像範本 OVA 檔案匯入至 vSphere,並轉換為虛擬機器範本。如需將基礎 OVA 檔案匯入至 vSphere 的相關資訊,請參閱 將基礎映像範本匯入到 vSphere
AWS
無需任何動作。含有支援的 Kubernetes 版本的 Amazon Linux 2 Amazon 機器映像 (AMI),會開放給所有支援的 AWS 區域中的所有 AWS 使用者使用。Tanzu Kubernetes Grid 會自動將適當的 AMI 版本用於您指定的 Kubernetes 版本。
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-1dot27dot5-ubuntu-2004k8s-1dot26dot8-ubuntu-2004
      1. 執行 az vm image terms accept。例如:
    az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004
    

部署 Kubernetes 叢集

要部署執行非預設 Kubernetes 版本的工作負載叢集,請執行以下操作:

  1. 如果要部署基於計劃的叢集,請將環境變數 ALLOW_LEGACY_CLUSTER 設為 true

    export ALLOW_LEGACY_CLUSTER=true
    
  2. 如果要部署叢集的 Kubernetes 修補程式版本低於支援的 Kubernetes 版本中列出的其次要版本支援的最新修補程式版本,請在 ConfigMap 命名空間中為其 TKr 建立 tkg-system 物件:

    1. ConfigMap 命名空間中建立 tkg-system 物件定義,其中列出了較舊的 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.4.0TKR-VERSON-* 值是 tanzu kubernetes-release get 列出的舊 TKr 版本,例如 v1.24.11--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-10-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.8---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.8 的替代方法,請執行以下操作:

    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.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.8+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

    • 對於控制平面節點,在 metadata.annotations 之下編輯 topology.controlPlane
    • 對於 worker 節點,在 metadata.annotations 之下編輯將要使用該映像的機器部署的 topology.workers.machineDeployments
    • 例如:

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

建立和使用自訂機器映像

您可以建立自己的機器映像以用於叢集節點。執行此動作的原因包括:

  • 為了在 VMware 支援但不散佈的基礎作業系統 (如 Red Hat Enterprise Linux (RHEL) v8) 上建立叢集。
  • 為了將其他套件安裝到基本機器映像,或者依照《Image Builder 說明文件》中的自訂中所述來自訂它。

如需相關指示,請參閱建置機器映像

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