Kubernetes 1.29 の非推奨 API


このページでは、GKE バージョン 1.29 へのアップグレード用にクラスタを準備する方法について説明します。1.29 で削除された非推奨 API を呼び出している API クライアントを確認し、一般提供の API を使用するようにクライアントを更新できます。詳しくは、Kubernetes 非推奨 API 移行ガイドをご覧ください。

バージョン 1.29 で削除された API

Kubernetes バージョン 1.29 で非推奨になった API は、一般提供に移行したベータ版 API(v2 など)か、ベータ版間(v1beta1 から v1beta2 など)で移行したベータ版 API です。一般提供の API は長期の互換性を保証するものであり、非推奨のベータ版 API の代わりに使用する必要があります。

新しいバージョンに移行した API の既存のオブジェクトはすべて、更新された API を使用して操作できます。

フロー制御リソース

FlowSchema と PriorityLevelConfiguration の flowcontrol.apiserver.k8s.io/v1beta2 API バージョンは、v1.29 で提供されなくなりました。

マニフェストと API クライアントを移行して、v1.29 以降で利用可能な flowcontrol.apiserver.k8s.io/v1 API バージョン、または v1.26 以降で利用可能な flowcontrol.apiserver.k8s.io/v1beta3 API バージョンを使用します。

既存のすべての永続オブジェクトには、新しい 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 は、Kubernetes オブジェクトの構成からではなく、ユーザー エージェントが非推奨の API を呼び出したときに非推奨に関する分析情報を生成します。

非推奨の 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 は非推奨の API の使用が 30 日間観察されなくなるまで待機し、その後、自動アップグレードのブロックを解除します。自動アップグレードはリリース スケジュールに沿って行われます。

リソース

詳細については、以下の OSS Kubernetes ドキュメントをご覧ください。