升級 Tanzu Kubernetes Grid

若要升級 Tanzu Kubernetes Grid (TKG),請在您作為啟動機器的機器上,下載並安裝新版本的 Tanzu CLI。此外,還必須下載並安裝基礎映像範本和虛擬機器,具體取決於您要升級的叢集,先前是部署到 vSphere、Amazon Web Services (AWS) 還是 Azure。

附註

在 TKG 升級路徑中,v2.3 緊接在 v2.2 之後。

安裝新版本的元件後,可以使用 tanzu mc upgradetanzu cluster upgrade CLI 命令,來升級管理叢集和工作負載叢集。

接下來幾節是升級 Tanzu Kubernetes Grid 時所需的整體步驟。此程序會假設您要升級到 Tanzu Kubernetes Grid v2.3.1。

有些步驟是僅當您執行從 Tanzu Kubernetes Grid v2.2.x 到 v2.3.x 的次要升級時才需要執行,若您執行的是從 Tanzu Kubernetes Grid v2.3.x 到 v2.3.y 的修補程式升級,就不需要執行。

重要

Tanzu Kubernetes Grid v2.4.x 是支援在 AWS 和 Azure 上升級現有獨立 TKG 管理叢集和 TKG 工作負載叢集的最後一個 TKG 版本。在 Tanzu Kubernetes Grid 2.5 版中,將移除在 AWS 和 Azure 上升級獨立 TKG 管理叢集和 TKG 工作負載叢集的功能。

從現在開始,VMware 建議您使用 Tanzu Mission Control 建立原生 AWS EKS 和 Azure AKS 叢集。但是,在 AWS 和 Azure 上升級現有獨立 TKG 管理叢集和 TKG 工作負載叢集仍完全支援 TKG v2.4.x (包括 TKG v2.4.x) 的所有 TKG 版本。

有關詳細資訊,請參見《VMware Tanzu Kubernetes Grid v2.4 版本資訊》中的〈棄用 AWS 和 Azure 上的 TKG 管理和工作負載叢集〉

必要條件

升級到 TKG v2.3.x 之前,請確保目前的部署為 TKG v2.2.x 或更早的 v2.3 版本。若要從早於 v2.2 的版本升級到 TKG v2.3.x,必須先使用 Tanzu CLI v2.2.x 升級到 v2.2.x。

下載並安裝新版本的 Tanzu CLI

從 v2.2.x 到 v2.3.x 的主要升級,以及從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。

若要下載並安裝新版本的 Tanzu CLI,請執行以下步驟。

  1. 刪除 ~/.config/tanzu/tkg/compatibility/tkg-compatibility.yaml 檔案。

    如果不刪除此檔案,新版本的 Tanzu CLI 將繼續使用先前版本的用料表清單 (BOM)。刪除此檔案會促使 Tanzu CLI 提取已更新的 BOM。從 2.2.x 升級到 2.3.x 以及從 2.3.x 升級到 2.3.y 時,必須執行此步驟。

  2. 遵循安裝 Tanzu CLI 和 Kubernetes CLI 以用於獨立管理叢集中的指示,在目前執行 tanzu 命令的機器上,下載並安裝 Tanzu CLI 和 kubectl。如果將任何獨立管理叢集設定為使用 LDAP 身分識別提供者,請在安裝 Tanzu CLI 之後執行 (僅限 LDAP) 更新 LDAP 設定中的步驟,然後再將 CLI 外掛程式更新為 Tanzu Kubernetes Grid v2.3。

  3. 安裝新版本的 Tanzu CLI 後,請執行 tanzu version,檢查是否適當安裝了正確版本的 Tanzu CLI。有關與 Tanzu Kubernetes Grid v2.3 相容的 CLI 版本清單,請參見產品互通性對照表
  4. 安裝 kubectl 後,請執行 kubectl version,檢查是否適當安裝了正確版本的 kubectl

如需 Tanzu CLI 命令和可用選項的相關資訊,請參閱 Tanzu CLI 命令參考

準備升級叢集

升級管理叢集和工作負載叢集之前,您必須先執行準備步驟,且具體取決於您的叢集是部署在 vSphere、AWS 還是 Azure 上。從 v2.2.x 到 v2.3.x 的主要升級,以及從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。

vSphere
您必須先將已升級的管理叢集和工作負載叢集所要執行的基礎映像範本新版本匯入至 vSphere,才能在 vSphere 上升級 Tanzu Kubernetes Grid 部署。VMware 會針對每一個支援的作業系統和 Kubernetes 版本,以 OVA 格式發佈基礎映像範本。匯入 OVA 後,必須將產生的虛擬機器轉換為虛擬機器範本。

此程序會假設您要升級到 Tanzu Kubernetes Grid v2.3.x。

  1. 移至 VMware Customer Connect,然後使用 VMware Customer Connect 認證登入。
  2. 瀏覽至 Tanzu Kubernetes Grid v2.3.1 產品下載
  3. 針對您的管理叢集和工作負載叢集正在執行的作業系統和 Kubernetes 版本系列,下載最新的 Tanzu Kubernetes Grid OVA。

    例如,對於 Photon v3 映像:

    • Kubernetes v1.26.8:Photon v3 Kubernetes v1.26.8 OVA
    • Kubernetes v1.25.13:Photon v3 Kubernetes v1.25.13 OVA
    • Kubernetes v1.24.17:Photon v3 Kubernetes v1.24.17 OVA

    對於 Ubuntu 20.04 映像:

    • Kubernetes v1.26.8:Ubuntu 2004 Kubernetes v1.26.8 OVA
    • Kubernetes v1.25.13:Ubuntu 2004 Kubernetes v1.25.13 OVA
    • Kubernetes v1.24.17:Ubuntu 2004 Kubernetes v1.24.17 OVA
    重要

    如果是安全修補程式版本,請確定您下載的是最新的 OVA 基礎映像範本。您可以在 Tanzu Kubernetes Grid 產品下載頁面上,找到已更新且包含安全修補程式的基礎映像範本。

  4. 在 vSphere Client 中,在 vCenter Server 詳細目錄中的物件上按一下滑鼠右鍵,並選取部署 OVF 範本 (Deploy OVF template)
  5. 選取本機檔案 (Local file),按一下按鈕以上傳檔案,然後導覽至已下載到本機機器上的 OVA 檔案。
  6. 遵循安裝程式提示,從 OVA 部署虛擬機器。

    • 接受或修改應用裝置名稱。
    • 選取目的地資料中心或資料夾。
    • 選取目的地主機、叢集或資源集區。
    • 接受使用者授權合約 (EULA)。
    • 選取磁碟格式和目的地資料存放區。
    • 選取虛擬機器要連線的網路。
  7. 按一下完成 (Finish),以部署虛擬機器。
  8. OVA 部署完成後,在虛擬機器上按一下滑鼠右鍵,然後選取範本 (Template) > 轉換成範本 (Convert to Template)
  9. 虛擬機器和範本 (VMs and Templates) 視圖中,在新範本上按一下滑鼠右鍵,選取新增權限 (Add Permission),然後將 Tanzu Kubernetes Grid 使用者 (例如 tkg-user) 指派給具有 Tanzu Kubernetes Grid 角色的範本,例如 TKG。您已在準備將管理叢集部署到 vSphere 中建立了此使用者和角色。

針對您已下載其 OVA 檔案的每個 Kubernetes 版本,重複此程序。

VMware Cloud on AWS SDDC 相容性

如果要升級部署在 VMware Cloud on AWS 上的工作負載叢集,請確認您現有部署使用的底層「軟體定義的資料中心 (SDDC)」版本與要升級成的 Tanzu Kubernetes Grid 版本相容。

若要檢視 SDDC 的版本,請在 VMware Cloud 主控台中的 SDDC 動態磚上,選取檢視詳細資料 (View Details),然後按一下支援 (Support) 窗格。

若要驗證與 Tanzu Kubernetes Grid 的相容性,請參閱 VMware 產品互通性對照表

AWS
安裝新版本的 Tanzu CLI 和其他工具後,必須先執行 tanzu mc permissions aws set 命令以重設 AWS 帳戶中的權限,然後才能升級管理叢集。
tanzu mc permissions aws set

從 v2.2.x 到 v2.3.x 的主要升級,或是從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。有關命令設定的 AWS 權限之詳細資訊,請參閱需要的 AWS 權限

含有支援的 Kubernetes 版本的 Amazon Linux 2 Amazon 機器映像 (AMI),會開放給所有支援的 AWS 區域中的所有 AWS 使用者使用。Tanzu Kubernetes Grid 會自動將適當的 AMI 版本用於您在升級期間指定的 Kubernetes 版本。

Azure
在 Azure 上升級 Tanzu Kubernetes Grid 部署之前,您必須先接受新預設虛擬機器映像的相關條款,以及您打算用於叢集虛擬機器的每一個非預設虛擬機器映像的相關條款。您需要針對每一項訂閱,分別接受一次這些條款。

若要接受條款,請執行以下動作:

  1. 列出 Azure Marketplace 中 Tanzu Kubernetes Grid 的所有可用虛擬機器映像:

    az vm image list --publisher vmware-inc --offer tkg-capi --all
    
  2. 接受新預設虛擬機器映像的條款:

    az vm image terms accept --urn publisher:offer:sku:version
    

    例如,若要接受 Tanzu Kubernetes Grid v2.3.1 中預設虛擬機器映像 (k8s-1dot26dot8-ubuntu-2004) 的條款,請執行:

    az vm image terms accept --urn vmware-inc:tkg-capi:k8s-1dot26dot8-ubuntu-2004:2021.05.17
    
  3. 如果您打算將任何工作負載叢集升級到非預設 Kubernetes 版本 (例如 v1.25.13 或 v1.24.17),請接受您要用於叢集虛擬機器的每一個非預設版本的相關條款。


升級獨立管理叢集

只有具有獨立管理叢集的 TKG,才需要執行此步驟。如果您執行的 TKG 具有 vSphere with Tanzu 主管,請隨 vSphere 一起升級主管,然後藉由升級其 TKr,來更新主管的 Kubernetes 版本。

從 v2.2.x 到 v2.3.x 的主要升級,以及從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。

若要升級 Tanzu Kubernetes Grid,必須升級您的部署中的所有管理叢集。在升級管理工作負載叢集的管理叢集之前,您無法升級工作負載叢集。

請遵循升級獨立管理叢集中的程序,來升級管理叢集。

升級工作負載叢集

從 v2.2.x 到 v2.3.x 的主要升級,以及從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。

請遵循升級工作負載叢集中的程序,來升級正在執行您的工作負載的工作負載叢集。

升級後的作業

升級叢集後,您還需要執行一些其他步驟,以完成升級程序。

將舊於 n-2 的套件版本同步

依預設,安裝在管理叢集中的某些套件 (例如 cert-manager) 可以在工作負載叢集和共用服務叢集中,安裝成 CLI 管理的套件。將管理叢集升級到最新的 Tanzu Kubernetes Grid 版本後,會自動更新其預設套件。

您可以在不同的工作負載叢集中執行不同版本的 CLI 管理套件。在工作負載叢集中,您可以執行 CLI 管理套件的最新支援版本,或執行您先前安裝的兩個最新 Tanzu Kubernetes Grid 版本中的套件版本。例如,如果 cert-manager 的最新套件版本為 v1.11.1 且您之前的 2 個 Tanzu Kubernetes Grid 安裝執行 cert-manager v1.10.1 和 v1.7.2,然後您可以在工作負載叢集中執行 cert-manager 版本 v1.11.1、v1.10.1 和 v1.7.2。

若有工作負載叢集所執行的套件版本數目,超過 n-2 個已安裝且舊於管理叢集中套件版本的 Tanzu Kubernetes Grid 版本,則您必須更新套件存放庫 (請參閱更新套件存放庫),然後升級工作負載叢集中的套件 (請參閱更新套件)。如果您不升級套件版本,將無法更新套件組態,因為套件存放庫中所包含的舊版套件可能不會超過 n-2 個。

重要

如果已在工作負載叢集上安裝 Prometheus,並將工作負載叢集升級到 Kubernetes v1.25,則必須至少將 Prometheus 升級到版本 2.37.0+vmware.3-tkg.1。Prometheus 軟體套件的早期版本 (例如版本 2.37.0+vmware.1-tkg.1) 與 Kubernetes 1.25 不相容。

提供者特定的升級後作業

視您的叢集是在 vSphere、AWS 還是 Azure 上執行,在升級叢集後,您還必須執行某些作業。

vSphere
在 Tanzu Kubernetes Grid 升級後升級 NSX Advanced Load Balancer 組態

如果您的 TKG v2.2 安裝架中未啟用 NSX ALB,請參閱安裝和設定 NSX Advanced Load Balancer,以取得如何安裝 NSX ALB 的相關資訊。

如果在 TKG v2.2 安裝中啟用了 NSX ALB,請參閱《Tanzu Kubernetes Grid v2.3 版本資訊》,以瞭解此版本支援的 Avi 控制器版本,以及是否需要將 Avi 控制器升級到相容版本。若要升級 Avi 控制器,請參閱 Avi Vantage 彈性升級

AWS
Tanzu Kubernetes Grid升級後安裝 AWS EBS CSI 驅動程式

TKG v2.2 及更新版本會在新建立的工作負載叢集上自動安裝 AWS EBS CSI 驅動程式,但若要在從 v2.1 升級的叢集上執行 AWS EBS CSI,必須手動安裝驅動程式。按照以下程序在 TKG v2.1 或更低版本中建立且從未安裝 AWS EBS CSI 驅動程式的叢集上手動安裝 AWS EBS CSI 驅動程式。

  1. 授與 AWS EBS CSI 驅動程式的權限:

    export AWS_REGION={YOUR_AWS_REGION}
    tanzu mc permissions aws set
    
  2. 針對使用 CSI 儲存區的每個工作負載叢集:

    1. 匯出以下環境變數,並設定功能旗標:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

    2. 產生 CSI 驅動程式資訊清單:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是您在其中安裝了 CSI 驅動程式的叢集名稱。

    3. csi-driver-addon-manifest.yaml 中,以工作負載叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    4. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 針對使用 CSI 儲存區的管理叢集:

    1. 匯出以下環境變數:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

    2. 產生 CSI 驅動程式資訊清單:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理叢集的名稱。

    3. csi-driver-addon-manifest.yaml 中,以管理叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    4. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
Azure
Tanzu Kubernetes Grid 升級後安裝 Azure Disk CSI 驅動程式

TKG v2.1 及更高版本會在新建立的工作負載叢集上自動安裝 Azure Disk CSI 驅動程式,但要在從 v1.6 升級的叢集上執行 Azure Disk CSI,必須手動安裝該驅動程式。按照以下程序在 TKG v1.6 或更低版本中建立且從未安裝 Azure 磁碟 CSI 驅動程式的叢集上手動安裝 Azure 磁碟 CSI 驅動程式。

  1. 匯出以下環境變數,並設定功能旗標:

    export _TKG_CLUSTER_FORCE_ROLE="management"
    export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
    export NAMESPACE="tkg-system"
    export DRY_RUN_MODE="legacy"
    tanzu config set features.cluster.allow-legacy-cluster true
    

    在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

  2. 針對使用 CSI 儲存區的每個工作負載叢集:

    1. 產生 CSI 驅動程式資訊清單:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是您在其中安裝了 CSI 驅動程式的叢集名稱。

    2. csi-driver-addon-manifest.yaml 中,以工作負載叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    3. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    4. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 針對使用 CSI 儲存區的管理叢集:

    1. 匯出以下環境變數:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

    2. 產生 CSI 驅動程式資訊清單:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理叢集的名稱。

    3. csi-driver-addon-manifest.yaml 中,以管理叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    4. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      

Tanzu Kubernetes Grid 升級後安裝 Azure File CSI 驅動程式

如果叢集在此之前未安裝 Azure File CSI 驅動程式,請在將 Tanzu Kubernetes Grid 安裝架構升級到 v2.3+ 後,遵循此程序進行安裝。

  1. 匯出以下環境變數,並設定功能旗標:

    export _TKG_CLUSTER_FORCE_ROLE="management"
    export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
    export NAMESPACE="tkg-system"
    export DRY_RUN_MODE="legacy"
    tanzu config set features.cluster.allow-legacy-cluster true
    

    在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

  2. 針對使用 CSI 儲存區的每個工作負載叢集:

    1. 產生 CSI 驅動程式資訊清單:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是您在其中安裝了 CSI 驅動程式的叢集名稱。

    2. csi-driver-addon-manifest.yaml 中,以工作負載叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    3. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    4. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 針對使用 CSI 儲存區的管理叢集:

    1. 匯出以下環境變數:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的範例中,將 NAMESPACE 設定為叢集的命名空間 tkg-system

    2. 產生 CSI 驅動程式資訊清單:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理叢集的名稱。

    3. csi-driver-addon-manifest.yaml 中,以管理叢集的命名空間來更新中繼資料中的密碼命名空間。使用 kubectl get cluster -A 命令,檢視叢集的命名空間。

    4. 將所做的變更套用在管理叢集的內容中:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消設定以下環境變數和功能旗標:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      


升級當機復原和診斷

從 v2.2.x 到 v2.3.x 的主要升級,以及從 v2.3.x 到 v2.3.y 的修補程序升級,都需要執行此步驟。

如需如何升級當機復原和診斷的相關資訊,請參閱安裝或升級當機復原和診斷二進位檔

後續步驟

檢查已升級的管理叢集,或向 Tanzu Mission Control 登錄它們。請參閱檢查並登錄新部署的獨立管理叢集

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