Kubernetes 1.29 已弃用的 API


本页面介绍如何准备集群以升级到 GKE 1.29 版。您可以找到对 1.29 版中移除的已弃用 API 进行调用的 API 客户端,并更新这些客户端以使用正式版 API。如需了解详情,请参阅 Kubernetes 已弃用的 API 迁移指南

1.29 版中已移除的 API

Kubernetes 1.29 版中已弃用的 API 是已升级到正式版的 Beta 版 API(例如 v2),或者是从一个 Beta 版升级到另一个 Beta 版(例如从 v1beta1 升级到 v1beta2)的 API。正式版 API 可提供长期的兼容性保证,您应使用它们来取代已弃用的 Beta 版 API。

已升级到新版本的 API 的所有现有对象都可以使用更新后的 API 进行交互。

流控制资源

从 v1.29 开始,我们不再提供 FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本。

迁移清单和 API 客户端以使用 flowcontrol.apiserver.k8s.io/v1 API 版本(从 v1.29 开始提供)或 flowcontrol.apiserver.k8s.io/v1beta3 API 版本(从 v1.26 开始提供)。

您可以使用新的 API 访问所有现有持久保留的对象。

flowcontrol.apiserver.k8s.io/v1 API 版本有以下主要变化:

  • PriorityLevelConfiguration spec.limited.assuredConcurrencyShares 字段已重命名为 spec.limited.nominalConcurrencyShares,并且在未指定时仅默认为 30,显式值 0 不会更改为 30。

flowcontrol.apiserver.k8s.io/v1beta3 API 版本有以下主要变化:

  • PriorityLevelConfiguration spec.limited.assuredConcurrencyShares 字段已重命名为 spec.limited.nominalConcurrencyShares

准备升级到 1.29 版

您无需删除并重新创建任何 API 对象。已升级到正式版的 API 的所有现有 API 对象现在都可以使用新的 API 版本进行读取和更新。

不过,我们建议您在升级到 Kubernetes 1.29 之前先迁移客户端和清单。如需了解详情,请参阅 Kubernetes 已弃用的 API 迁移指南

您可以查看弃用数据分析和建议,以确定集群是否正在使用 Kubernetes 1.29 已弃用的 API。GKE 会在用户代理调用已弃用的 API 时(而不是通过 Kubernetes 对象配置)生成弃用数据分析。

查找使用已弃用 API 的集群

您可以通过弃用数据分析查找哪些集群在使用已弃用的 API。弃用数据分析还提供哪些 API 客户端正在调用集群中的已弃用 API 等信息。

您还可以使用审核日志来查找哪些客户端在调用已弃用的 API。

找到对已弃用的 API 进行写入调用的 API 客户端

对于启用了 Google Cloud Observability 的集群,您可以使用以下管理员活动审核日志查询来显示非 Google 管理的用户代理使用已弃用 API 的情况:

resource.type="k8s_cluster"
labels."k8s.io/removed-release"="DEPRECATED_API_MINOR_VERSION"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")

DEPRECATED_API_MINOR_VERSION 替换为已移除弃用的 API 的次要版本,例如 1.22

系统会自动为 GKE 集群启用管理员活动审核日志。运行此查询后,日志会显示对已弃用的 API 进行写入调用的用户代理。

找到对已弃用的 API 进行读取调用的 API 客户端

默认情况下,审核日志仅显示对已弃用 API 的写入调用。如需显示对已弃用 API 的读取调用,请配置数据访问审核日志。

按照说明使用 Google Cloud 控制台配置数据访问审核日志。在 Google Cloud 控制台中,选择 Kubernetes Engine API。在信息面板的“日志类型”标签页中,选择 Admin ReadData Read

启用这些日志后,您现在可以使用原始查询来查看已弃用 API 的读取调用和写入调用。

升级第三方组件

弃用数据洞见可能会显示调用集群中已弃用 API 的第三方代理的结果。

如需解决调用已弃用的 API 的第三方代理,我们建议您采用以下最佳实践:

  1. 请咨询您的第三方软件提供商以获取更新的版本。
  2. 将第三方软件升级到最新版本。如果您无法升级软件,则应测试将 GKE 升级到已移除弃用的 API 的版本是否会中断服务。

我们建议您在预演集群上执行此升级和 GKE 版本升级,以监控中断情况,然后再升级生产集群。

更新受弃用影响的集群

如需升级受弃用影响的集群,请执行以下步骤:

  1. 日志中检查哪些用户代理使用已弃用的 API。
  2. 更新使用已弃用的 API 的用户代理,以使用受支持的 API 版本。
  3. 将调用已弃用的 API 的所有第三方软件更新为最新版本。
  4. 升级测试集群并在升级生产集群之前在测试环境中测试应用,以降低弃用 API 不再可用时的中断风险。
  5. 如果您无法更新受影响的用户代理,请升级单独的测试集群以检查升级是否会导致中断。如果升级不会导致中断,您可以手动升级集群

  6. 更新所有用户代理后,GKE 会等待 30 天,以便不再观察到已弃用 API 的使用,然后取消屏蔽自动升级。自动升级根据发布时间表进行。

资源

如需了解详情,请参阅 OSS Kubernetes 文档: