削除された Kubernetes API を検出する

API が非推奨に設定され、削除された Kubernetes のリリースがいくつかあります。Google Distributed Cloud クラスタを新しい Kubernetes バージョンにアップグレードする場合、削除された API がワークロードで使用されると、ワークロードが中断される可能性があります。クラスタをアップグレードする前に、このドキュメントの手順に沿って、特定の Kubernetes バージョンに対して削除された API がワークロードで使用されているかどうか確認してください。

Kubernetes リリースによって削除された API の一覧については、Kubernetes ドキュメントの非推奨 API 移行ガイドをご覧ください。

API の削除が影響を受けるかどうかを判断する

以降の手順では、Google Distributed Cloud クラスタでクラスタの監査ロギングを有効にし、監査ログが Google Cloud Observability にストリーミングされる必要があります。これはデフォルトの動作です。

使用している Kubernetes サービス アカウントが削除された API を呼び出すかを確認するには、提供されたクエリをログ エクスプローラで実行します。

  1. Google Cloud コンソールで、[ロギング] メニューの [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリ] フィールドに次のクエリを入力します。

    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 呼び出しが行われたかどうかを示します。