有多个 Kubernetes 版本已弃用并移除了 API。如果将 Google Distributed Cloud 集群升级到新的 Kubernetes 版本,并且工作负载使用任何已移除的 API,则该工作负载可能会中断。在升级集群之前,请按照本文档中的步骤确定工作负载是否对给定 Kubernetes 版本使用了任何已移除的 API。
如需按 Kubernetes 版本查看已移除的 API 列表,请参阅 Kubernetes 文档中的已弃用的 API 迁移指南。
确定 API 删除是否对您产生影响
以下步骤要求您的 Google Distributed Cloud 集群启用了集群审核日志记录,以及审核日志会流式传输到 Google Cloud Observability,这是默认行为。
如需确定您使用的 Kubernetes 服务账号是否对任何已删除的 API 进行调用,请在 Logs Explorer 中运行提供的查询:
在 Google Cloud 控制台中,转到 Logging 菜单中的日志浏览器页面。
在查询字段中,输入以下查询:
resource.labels.cluster_name = "CLUSTER_NAME" AND logName = "projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" AND protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:cert-manager:") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system:") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system-webhook:") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system:") AND protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system-webhook:") AND labels."k8s.io/removed-release"="KUBERNETES_MINOR_VERSION"
替换以下内容:
CLUSTER_NAME
:集群名称,该集群包含您要检查的工作负载。PROJECT_ID
:您的集群在日志和指标中使用的 Google Cloud 项目的 ID (clusterOperations.projectID
)。KUBERNETES_MINOR_VERSION
:已移除 API 的次要 Kubernetes 版本,例如 1.25。
此查询的输出会显示您的任何 Kubernetes 服务账号是否调用了对已针对给定 Kubernetes 次要版本移除的 API。