Tanzu Kubernetes 版本 (TKr) 提供由 VMware 签名和支持的可与 TKG 服务 集群配合使用的 Kubernetes 软件分发版。TKr 格式已更新,供 vSphere 8 支持软件包和多个操作系统。
TKr 发行说明
有关可用 TKr 的完整列表、每个版本的新增功能、已知问题以及 TKr 兼容性,请参阅 Tanzu Kubernetes 版本发行说明。
TKr 分发和消耗
VMware 通过内容交付网络分发 Tanzu Kubernetes 版本。您可以使用 vSphere 内容库将 Tkr 与 vSphere 命名空间 相关联。要自动完成 TKr 的消耗,请使用已订阅内容库。对于 Internet 受限的环境,请使用本地内容库。
每个 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 服务 的兼容性
TKrs 的发布和更新独立于 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 集群。
- 使用 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 版本和支持的自定义的详细信息,请参阅文档。