Kubernetes のリリースには、非推奨になった API と削除された API がいくつかあります。GKE on Bare Metal クラスタを新しい Kubernetes バージョンにアップグレードしたときに、削除された API をワークロードが使用していた場合、ワークロードが中断される可能性があります。このドキュメントの手順に沿ってクラスタをアップグレードする前に、特定の Kubernetes バージョンに対して削除された API がワークロードで使用されているかどうかを確認します。
Kubernetes リリースによって削除された API の一覧については、Kubernetes ドキュメントの非推奨 API 移行ガイドをご覧ください。
API の削除が影響を受けるかどうかを判断する
次の手順では、GKE on Bare Metal クラスタでクラスタの監査ロギングを有効にし、監査ログが Google Cloud Observabilityにストリーミングされる必要があります。デフォルトの動作です。
使用している Kubernetes サービス アカウントが削除された API を呼び出すかを確認するには、提供されたクエリをログ エクスプローラで実行します。
Google Cloud コンソールで、[ロギング] メニューの [ログ エクスプローラ] ページに移動します。
[Query] フィールドに次のクエリを入力します。
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 呼び出しが行われたかどうかを示します。