Tanzu Kubernetes 版本 (TKr) 提供由 VMware 簽署和支援的 Kubernetes 軟體發行版以搭配 TKG 服務 叢集使用。vSphere 8 的 TKr 格式已更新,可支援套件和多個作業系統。
Tkr 版本資訊
如需可用 TKr 的完整清單、每個版本的新增功能、已知問題以及 TKr 相容性,請參閱 Tanzu Kubernetes 發行版本說明。
TKr 發行版與耗用
VMware 透過內容傳遞網路發佈 Tanzu Kubernetes 版本。vSphere 內容程式庫可用來將 TKr 與 vSphere 命名空間 相關聯。若要自動耗用 TKr,請使用已訂閱內容程式庫。對於網際網路受限的環境,請使用本機內容程式庫。
每個 Tanzu Kubernetes 版本 將作為 OVA 範本進行發佈。主管 上的 TKr 控制器使用 OVA 範本為 TKG 叢集節點建構虛擬機器。虛擬機器磁碟大小由 TKr OVA 範本設定。可以使用虛擬機器類別指定 CPU 和 RAM 資源。
TKr 內容程式庫不限定於命名空間範圍。所有 vSphere 命名空間 對具有 主管 的 TKG 都使用相同的 TKr 內容程式庫。在一個 vSphere 命名空間 中編輯 TKr 內容程式庫時將更新所有其他命名空間中的該內容程式庫。
Tkr NAME 字串
kubectl get tkr
列出可在
vSphere 命名空間 中使用的 TKr 映像。例如:
kubectl get tkr NAME VERSION READY COMPATIBLE CREATED v1.16.14---vmware.1-tkg.1.ada4837 v1.16.14+vmware.1-tkg.1.ada4837 False False 19d v1.17.17---vmware.1-tkg.1.d44d45a v1.17.17+vmware.1-tkg.1.d44d45a False False 19d v1.18.19---vmware.1-tkg.1.17af790 v1.18.19+vmware.1-tkg.1.17af790 False False 19d v1.19.16---vmware.1-tkg.1.df910e2 v1.19.16+vmware.1-tkg.1.df910e2 False False 19d v1.20.12---vmware.1-tkg.1.b9a42f3 v1.20.12+vmware.1-tkg.1.b9a42f3 False False 19d v1.21.6---vmware.1-tkg.1.b3d708a v1.21.6+vmware.1-tkg.1.b3d708a True True 19d v1.22.9---vmware.1-tkg.1.cc71bc8 v1.22.9+vmware.1-tkg.1.cc71bc8 True True 19d v1.23.8---vmware.2-tkg.2-zshippable v1.23.8+vmware.2-tkg.2-zshippable True True 19d v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d
tkr.reference.name
欄位中提供完整的 TKr NAME 字串。如果使用的是
v1beta1 API,請在
topology.version
欄位中提供完整的 TKr NAME 字串。
內容程式庫中 TKr 的名稱必須是完整 TKr NAME 字串。如果使用的是已訂閱內容程式庫,則會為您建立該 TKr NAME 字串。如果使用的是本機內容程式庫,請確保為 TKr 提供的名稱與 TKr NAME 字串相符。如需詳細資料,請參閱本機內容程式庫。
TKr 與 TKG 服務 的相容性
TKr 的發行和更新獨立於 TKG 服務 和 主管。
若要佈建 TKG 叢集,TKr 必須與 TKG 服務 相容。不能使用與 TKG 服務 不相容的 TKr。此外,還必須確保執行的 TKr 與要升級的版本相容。
可以使用命令 kubectl get tkr
檢查 TKr 相容性。[相容] 資料行會傳回布林值。True
表示 TKr 相容,False
表示 TKr 不相容。
TKr 與 vSphere 的相容性
TKr 格式已針對 vSphere 8 進行了更新。vSphere 8 的 TKr 只能在 vSphere 8.x 上執行。vSphere 7.x 的 TKr 是與 vSphere 7 搭配使用的舊版映像。此類映像可以在 vSphere 8 上執行,但僅用於升級目的。舊版 TKr 映像由 legacy-tkr
註解標籤識別。
可以使用命令 kubectl get tkr -o yaml
和 kubectl get tkr --show-labels
檢查 TKr 相容性。如果存在註解標籤 legacy-tkr
,則 TKr 不支援 vSphere 8 功能,且僅應用於從 vSphere 7 升級到 vSphere 8。
legacy-tkr
。
kubectl get tkr v1.23.8---vmware.3-tkg.1 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
creationTimestamp: "2023-03-15T20:33:17Z"
finalizers:
- tanzukubernetesrelease.run.tanzu.vmware.com
generation: 1
labels:
os-arch: amd64
os-name: photon
os-type: linux
os-version: "3.0"
run.tanzu.vmware.com/legacy-tkr: ""
v1: ""
v1.23: ""
v1.23.8: ""
v1.23.8---vmware: ""
v1.23.8---vmware.3: ""
v1.23.8---vmware.3-tkg: ""
v1.23.8---vmware.3-tkg.1: ""
name: v1.23.8---vmware.3-tkg.1
--show-labels
旗標檢查 TKr 相容性。存在標籤
legacy-tkr
,因此映像只能用於建立舊版 TKG 叢集。
kubectl get tkr v1.23.8---vmware.3-tkg.1 --show-labels
NAME VERSION READY COMPATIBLE CREATED LABELS
v1.23.8---vmware.3-tkg.1 v1.23.8+vmware.3-tkg.1 True True 19d os-arch=amd64,os-name=photon,os-type=linux,os-version=3.0,run.tanzu.vmware.com/legacy-tkr=,
legacy-tkr
。
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 --show-labels NAME VERSION READY COMPATIBLE CREATED LABELS v1.28.8---vmware.1-fips.1-tkg.2 v1.28.8+vmware.1-fips.1-tkg.2 True True 21d os-arch=amd64,os-name=photon,os-type=linux,os-version=5.0,tkr.tanzu.vmware.com/standard=,v1.28.8---vmware.1-fips.1-tkg.2=,v1.28.8---vmware.1-fips.1-tkg=,v1.28.8---vmware.1-fips.1=,v1.28.8---vmware.1-fips=,v1.28.8---vmware.1=,v1.28.8---vmware=,v1.28.8=,v1.28=,v1=
-o yaml
執行等效命令還會顯示
legacy-tkr
標籤不存在,這表示 TKr 是專為 vSphere 8.x 而建置。
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesRelease metadata: creationTimestamp: "2024-05-08T20:03:57Z" finalizers: - tanzukubernetesrelease.run.tanzu.vmware.com generation: 2 labels: os-arch: amd64 os-name: photon os-type: linux os-version: "5.0" tkr.tanzu.vmware.com/standard: "" v1: "" v1.28: "" v1.28.8: "" v1.28.8---vmware: "" v1.28.8---vmware.1: "" v1.28.8---vmware.1-fips: "" v1.28.8---vmware.1-fips.1: "" v1.28.8---vmware.1-fips.1-tkg: "" v1.28.8---vmware.1-fips.1-tkg.2: "" name: v1.28.8---vmware.1-fips.1-tkg.2 ...
TKr 作業系統映像格式
TKr 作業系統映像格式支援單一 TKr 的多個作業系統映像。這意味著,對於某個特定的 Kubernetes 版本,所有受支援的作業系統 (目前為 PhotonOS 和 Ubuntu) 只有一個 Tanzu Kubernetes 版本。預設作業系統映像格式為 PhotonOS。
run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
註解指定 TKr 的 Ubuntu 作業系統版本。例如,以下
TKG 叢集規格使用指定 TKr 的 Ubuntu 版本。
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-ubuntu namespace: tkgs-cluster-ns annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu spec: topology: controlPlane: ... tkr: reference: name: v1.28.8---vmware.1-fips.1-tkg.2
apiVersion: run.tanzu.vmware.com/v1alpha3 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-multiOS namespace: tkgs-cluster-ubuntu annotations: //Worker nodes annotation run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu spec: topology: controlPlane: tkr: reference: name: v1.28.8---vmware.1-fips.1-tkg.2 replicas: 3 vmClass: guaranteed-medium storageClass: tkgs-storage-profile nodePools: - replicas: 3 name: np-1 vmClass: guaranteed-medium storageClass: tkgs-storage-profile
將系統升級到 vSphere 8 時,現有 TKr 將自動轉換為參照單一作業系統映像的 TKr 作業系統映像格式。這樣,舊版 TKr 就可以相容升級到非舊版 TKr。
舊版 TKr 具有兩個版本:Photon 和 Ubuntu。當舊版 TKr 具有 Ubuntu 特定版本時,您可以使用完整版本字串 (包含「ubuntu」) 並省略註解標籤,也可以使用短版本字串 (不含「ubuntu」) 並包含版本標籤。
TKr 套件
與 vSphere 8 相容的 TKr 映像已更新為用於核心元件的以套件為基礎的架構,例如容器儲存區介面 (CSI) 和容器網路介面 (CNI)。如果使用的是 v1beta API,可以使用自訂資源定義變更或更新這些元件。
kubectl get tkr TKR-NAME -o yaml
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
spec: bootstrapPackages: - name: antrea.tanzu.vmware.com.1.13.3+vmware.3-tkg.2-vmware - name: vsphere-pv-csi.tanzu.vmware.com.3.1.0+vmware.1-tkg.6-vmware - name: vsphere-cpi.tanzu.vmware.com.1.28.0+vmware.1-tkg.1-vmware - name: kapp-controller.tanzu.vmware.com.0.48.2+vmware.1-tkg.1-vmware - name: guest-cluster-auth-service.tanzu.vmware.com.1.3.3+tkg.1-vmware - name: metrics-server.tanzu.vmware.com.0.6.2+vmware.3-tkg.5-vmware - name: secretgen-controller.tanzu.vmware.com.0.15.0+vmware.1-tkg.1-vmware - name: pinniped.tanzu.vmware.com.0.25.0+vmware.2-tkg.1-vmware - name: capabilities.tanzu.vmware.com.0.32.1+vmware.1 - name: gateway-api.tanzu.vmware.com.1.0.0+vmware.1-tkg.1-vmware - name: calico.tanzu.vmware.com.3.26.3+vmware.1-tkg.1-vmware
關於範例使用案例,請參閱 v1beta1 範例:使用 Calico CNI 的叢集。
移轉 TKr 作業系統類型
不支援在 TKr 作業系統之間執行就地叢集更新。這意味著多種情況,例如,意味著無法將使用 TKr v1.27.11 Photon 的 TKG 叢集升級到 TKr v1.28.8 Ubuntu。
- 使用 Velero 備份以 Photon 為基礎的 TKG 叢集工作負載。
- 佈建使用 Ubuntu TKr 的新 TKG 叢集。
請參閱佈建 TKG 服務叢集。
- 使用 Velero 將 TKG 叢集工作負載還原到 Ubuntu 叢集。
TKr 強化
提供了適用於系統元件 (包括 主管 和 TKr) 的安全性技術實作指南 (STIG)。如需詳細資訊,請參閱〈Tanzu STIG 強化〉。
建置您自己的 TKr
從適用於 vSphere 8.x 的 TKr v1.25.7 開始,可以為 vSphere 8 上的 TKG 叢集建置自訂 TKr 機器映像。自訂機器映像會封裝受支援的作業系統和版本、基於已發行 TKr 的 Kubernetes 版本以及您自訂的所有內容。
若要為 TKG 叢集節點建置自訂機器映像,請使用 vSphere Tanzu Kubernetes Grid Image Builder。如需有關構建置自訂機器映像、支援的 TKr 版本和支援的自訂項目的詳細資料,請參閱說明文件。