本主题介绍了系统如何解析 TKr 映像。

TKr 解析

创建或更新 Cluster 对象时,Kubernetes API 服务器会调用 TKr 解析器突变 Webhook。Cluster(或其 ClusterClass)必须具有 run.tanzu.vmware.com/resolve-tkr 注释。否则,将完全跳过 TKr 解析。TKr 解析器使用 run.tanzu.vmware.com/resolve-tkr 注释的值作为标签查询来限制候选 TKr 集。如果该字符串为空,系统会选择所有 TKr。

Cluster 拓扑 controlPlane 和 machineDeployments 上的 run.tanzu.vmware.com/resolve-os-image 注释值分别用作要用于 controlPlane 和 machineDeployments 的 OSImage 对象的标签选择器。解析后的 TKr 仅附带一个 OSImage,它必须满足 controlPlane 或任意 machineDeployments 的查询。

提供的 Cluster spec.topology.version 用作版本前缀。TKr 解析器 Webhook 将查找满足上述限制的最新可用 TKR。如果未找到,则会拒绝集群创建/更新请求。

TKR 解析器 Webhook 会改变 Cluster 对象:
  • run.tanzu.vmware.com/tkr 标签设置为解析后的 TKR 的名称
  • Cluster spec.topology.version 设置为解析后的 TKR 的 Kubernetes 版本
  • Cluster 变量 TKR_DATA 会更新,以包含从 Kubernetes 版本到 controlPlane 的 TKR 和 OSImage 值集的映射。
  • 单个 machineDeployments 的 TKR_DATA 变量替代会更新,以包含从 Kubernetes 版本到 machineDeployment 的 TKR 和 OSImage 值集的映射。