本主題說明如何列出可用的 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
可以啟用或停用 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
每個 Tanzu Kubernetes Grid 版本都會提供 Kubernetes 的預設版本。Tanzu Kubernetes Grid v2.3 的預設版本為 Kubernetes v1.26.8。
上游 Kubernetes 發行修補程式或新版本時,VMware 會將它們發佈於公用登錄中,Tanzu Kubernetes 版本控制器會將它們匯入至管理叢集。這可讓 tanzu
CLI 根據新版本來建立叢集。
在 vSphere 和 Azure 上,您還需要另外執行一個步驟,才能部署執行 Kubernetes 非預設版本的叢集:
vSphere:將適當的基礎映像範本 OVA 檔案匯入至 vSphere,並轉換為虛擬機器範本。如需將基礎 OVA 檔案匯入至 vSphere 的相關資訊,請參閱將基礎映像範本匯入到 vSphere。
Azure:執行 Azure CLI 命令,以接受基礎作業系統版本的授權。接受授權後,未來即可以跳過此步驟:
tanzu kubernetes-release get
命令輸出中列出的目標 Kubernetes 版本轉換為其 Azure 映像 SKU,如下所示:
v
變更為 k8s-
。.
變更為 dot
。+vmware.*
變更為 -ubuntu-2004
,以指定 Ubuntu v20.04 (在 Azure 上,這是所有 Tanzu Kubernetes Grid 虛擬機器的預設作業系統版本)。k8s-1dot26dot8-ubuntu-2004
、k8s-1dot25dot13-ubuntu-2004
。執行 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 會自動將適當的 AMI 版本用於您指定的 Kubernetes 版本。
要部署執行非預設 Kubernetes 版本的工作負載叢集,請執行以下操作:
如果要部署基於計劃的叢集,請將環境變數 ALLOW_LEGACY_CLUSTER
設為 true
:
export ALLOW_LEGACY_CLUSTER=true
如果要部署叢集的 Kubernetes 修補程式版本低於支援的 Kubernetes 版本中列出的其次要版本支援的最新修補程式版本,請在 ConfigMap
命名空間中為其 TKr 建立 tkg-system
物件:
在 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.3.1
,TKR-VERSON-*
值是 tanzu kubernetes-release get
列出的舊 TKr 版本,例如 v1.24.14--vmware.1-tkg
。
建立 ConfigMap
物件:
kubectl apply -f old-tkrs-config.yaml
如果您要部署的工作負載叢集的 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_NAME
、OS_VERSION
和 OS_ARCH
以指定基本機器映像,例如 ubuntu
、20.04
或 photon
、3
和 amd64
。這些預設為 VMware 散發的作業系統映像,但您也可以指定自己的替代作業系統映像以用於叢集節點:
按照將基礎映像範本匯入到 vSphere 中所述,將映像上傳到 vSphere。
根據您的映像是否與由 VMware 散發的現有機器映像共用相同的作業系統版本,執行以下操作之一:
如果要指定與現有 TKr 具有相同作業系統名稱、版本和架構的替代映像以及 VMware 散發的映像,請編輯其 OSImage
物件,例如:
kubectl edit OSImage v1.26.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
否則,使用現有的 OSImage
物件定義作為範本建立並套用新的 OSImage
物件。將其 metadata.name
和 spec.image.ref.version
值設為 OVA 檔名。
在 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-FIELD
和 MY-VALUE
是設為包含在 Cluster
物件規格中的識別碼欄位和值。
MY-VALUE
長度必須為 0-63 個字元,並且可以為空值,否則它必須以英數字元開頭和結尾,並且包含英數字元、短線 (-
)、底線 (_
) 或點 (.
)。OSImage
物件metadata.labels
設定中,其格式為 ova-MY-FIELD: MY-VALUE
。如要在叢集中使用替代機器映像,請編輯 Cluster
物件,以將 ova-MY-FIELD=MY-VALUE
設定新增到將要使用該映像的叢集節點的 metadata.annotations
。
metadata.annotations
之下編輯 topology.controlPlane
。metadata.annotations
之下編輯將要使用該映像的機器部署的 topology.workers.machineDeployments
。例如:
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
您可以建立自己的機器映像以用於叢集節點。執行此動作的原因包括:
如需相關指示,請參閱建置機器映像。