本页面介绍了由 Kubernetes 和其他依赖项引起的功能和 API 弃用如何与 Google Kubernetes Engine (GKE) 搭配使用。本页面还包含有关特定上游弃用的信息表。如需了解如何查看即将弃用的风险,请参阅查看弃用提示和建议。
什么是 Kubernetes 弃用?
GKE 集群由 Kubernetes 开源集群管理系统提供支持。Kubernetes 的功能会随着时间的推移而变化,并且随着新功能不断引入,有时可能需要移除某项功能。或者,某项功能可能会从 Beta 版阶段升级到正式版阶段。Kubernetes 弃用政策可确保用户遵循可预测的流程,在已弃用的功能或 API 被移除之前进行迁移。
在功能或 API 的弃用期结束并被移除后,从相应的 GKE 次要版本开始,您便无法再使用该功能或 API。如果集群依赖于已弃用的功能或 API,则集群功能可能会受到影响。
其他上游依赖项引起的弃用
除了 Kubernetes 功能和 API 之外,GKE 还提供由其他提供商提供支持的功能,例如由 Microsoft 支持的 Windows 节点映像,以及由 Canonical 支持的 Ubuntu 节点映像。如果这些上游提供商弃用某项功能或结束对该功能的支持,GKE 可能必须移除相应的功能。本页面上的表还介绍了由 Kubernetes 之外的上游依赖项引起的即将进行的弃用和移除。
Kubernetes 弃用功能如何与 GKE 搭配使用
在 GKE 上运行应用涉及您与 GKE 之间的共担责任。
作为用户,您必须评估和缓解与即将发布的 Kubernetes 次要版本中移除的已弃用功能和 API 相关的任何风险。在接下来的部分中,您将了解 GKE 如何简化此过程。它会检测已弃用的 Kubernetes 功能和 API 的使用情况,分享有关此使用情况的提示,并提供有关如何迁移到与即将推出的次要版本兼容的功能和 API 的建议。
如果 GKE 检测到集群正在使用在即将发布的 Kubernetes 次要版本中移除的功能,则会暂停到下一个次要版本的集群自动升级,并且 GKE 会分享弃用提示和建议。
GKE 暂停自动升级时会发生什么情况?
如果 GKE 检测到使用已弃用功能或 API 的情况,则 GKE 会暂停自动升级,以防止集群升级到损坏状态。到下一个 Kubernetes 次要版本的升级会暂停,但 GKE 会继续向当前次要版本的集群提供补丁升级。例如,如果集群为 1.21.11-gke.1100 版,并且调用 1.22 版中移除的已弃用 API,则 GKE 会暂停自动升级到 1.22 版。但是,GKE 不会暂停自动升级为新的补丁版本 1.21.11-gke.1900。
由于 GKE 无法保证检测到所有使用情况,因此 GKE 无法保证在使用已弃用功能或 API 时始终暂停升级。如需确保集群不会升级,您必须使用维护排除项。
GKE 何时恢复自动升级?
如果 GKE 在 30 天内未检测到使用已弃用的功能或调用已弃用的 API,并且下一个次要版本是集群发布渠道中的默认版本,则集群会自动升级。如需查看该次要版本成为集群发布渠道中的默认版本的时间,请参阅发布时间表。
如果 GKE 继续检测到集群上使用已弃用的功能,GKE 会将集群保持在当前的次要版本,直至达到该版本的服务终止日期为止。到达此日期(在发布时间表中提供)后,集群将自动升级到下一个次要版本,并且集群环境可能受损,因为已移除的功能仍在使用。如需了解详情,请参阅版本支持常见问题解答。
什么是弃用提示和建议?
如果 GKE 检测到集群正在使用即将发布的 Kubernetes 次要版本中移除的功能,GKE 会共享弃用提示和建议,告知您集群在使用已弃用的功能。此提示提供有关上次检测到的使用情况的信息,详细信息取决于弃用类型。如需了解如何查看此信息,请参阅查看弃用提示和建议。
评估和缓解即将发生的 Kubernetes 弃用的风险
GKE 提供迁移指南,指导您从已弃用的功能和 API 迁移到与即将发布的次要版本兼容的功能和 API。有关即将发生的弃用及其迁移指南的列表,请参阅 Kubernetes 弃用信息。
虽然 GKE 会分享有关其检测到的集群弃用风险的提示,但无法保证能够检测到弃用的所有使用情况。例如,如果在过去 30 天内未使用已弃用的功能,则 GKE 不会检测到任何使用活动,也不会生成提示和建议。
在将集群升级到下一个次要版本之前,您必须独立评估集群环境是否包含任何即将弃用的功能。如果您已确定集群在下一个次要版本中没有弃用风险,您可以选择发布渠道、使用维护窗口和排除项或手动升级集群,以对升级过程进行控制。
解决 Kubernetes 弃用风险
您可以通过查看即将发生的弃用来采取行动。查看弃用提示和建议,以评估您的集群是否有风险,并在支持该功能的最后一个可用次要版本达到服务终止之前,使用迁移指南来缓解风险。
在您进行更改以停止使用集群中已弃用的 API 或功能后,GKE 将等待 30 天,直到它不再观察到已弃用的 API 或功能的使用,然后取消阻止自动升级。自动升级根据发布时间表进行。
如果您已确认升级不会对您的集群环境造成中断,您也可以手动升级集群。为此,您可以先创建一个测试集群并检查升级是否会造成任何中断。如果不会,则您可以手动升级集群。
如果您忽略某建议,则只会对所有用户隐藏该建议。自动升级会保持暂停状态,直到您迁移出已弃用的功能,并且 GKE 连续 30 天未检测到使用已弃用的功能。
Kubernetes 弃用信息
以下部分提供了有关正在进行的弃用的信息,包括介绍如何迁移到与可用 Kubernetes 次要版本兼容的功能或 API 的指南。您可以查看这些表,并通过提示和建议了解 GKE 是否检测到并报告使用情况。
这些表仅提供正在进行的弃用的相关信息,省略了先前包含的功能或 API 的信息,这些功能或 API 在已远超服务终止日期的版本中弃用。
Kubernetes 功能弃用
下表列出了正在弃用的 GKE 功能,以及不再支持这些功能的版本:
名称 | 已弃用 | 已移除 | 更多信息 | GKE 是否检测并报告使用活动? |
---|---|---|---|---|
使用 SHA-1 算法签名的 TLS 证书 | GKE 1.24 版 | GKE 1.29 版 | SHA-1 TLS 证书支持移除 | 是 |
Kubernetes 客户端的内置身份验证插件 | GKE 1.22 版 | GKE 1.25 版 | 已弃用的 Kubernetes 客户端身份验证插件 | 否 |
PodSecurityPolicy | GKE 1.21 版 | GKE 1.25 版 | PodSecurityPolicy 弃用 | 是 |
基于 Docker 的节点映像 | GKE 1.20 版 | GKE 1.24 版 | Docker 节点映像弃用 | 是 |
网络钩子证书中的 X.509 通用名称字段 | GKE 1.19 版 | GKE 1.23 版 | 网络钩子证书 CN 字段弃用 | 是 |
Kubernetes API 弃用
下表简要介绍了已弃用且不再提供的 Kubernetes API,按 Kubernetes 版本排序:
Kubernetes 版本 | 更多信息 | GKE 是否检测并报告使用活动? |
---|---|---|
1.29 | Kubernetes 1.29 已弃用的 API | 是 |
1.27 | Kubernetes 1.27 已弃用的 API | 是 |
1.26 | Kubernetes 1.26 已弃用的 API | 是 |
1.25 | Kubernetes 1.25 已弃用的 API | 是 |
1.22 | Kubernetes 1.22 已弃用的 API、 在 GKE 1.23 中移除了 Kubernetes Ingress Beta 版 API |
是 |
其他功能弃用
下表介绍了不属于 Kubernetes 开源项目的其他上游提供商引起的弃用和移除情况。
名称 | 已弃用 | 已移除 | 更多信息 | GKE 是否检测并报告使用活动? |
---|---|---|---|---|
Windows Server 半年渠道 (SAC) 节点映像 | 不适用 | 2022 年 8 月 9 日 | Windows Server SAC 服务终止 | 否 |