1.36 バージョン情報と更新手順
IBM Cloud® Kubernetes Service のバージョン 1.36 に関する情報を確認してください。 Kubernetes プロジェクトのバージョン 1.36 に関する詳細については、 Kubernetes の変更履歴をご覧ください。
IBM Cloud Kubernetes Service CNCFの「 Kubernetes 」ソフトウェア適合性認証プログラムにおいて、 1.36 版向けの「 Kubernetes 」認定製品です。 Kubernetes ® は、The Linux Foundation の米国およびその他の国における登録商標であり、The Linux Foundation のライセンスに従って使用されます。
リリース・タイムライン
以下の表は、 IBM Cloud® Kubernetes Service のバージョン 1.36 のリリース予定スケジュールをまとめたものです。 この情報は、バージョンがサポート対象外になる可能性がある一般的な時間を見積もるなど、計画の目的に使用できます。
剣標 (†) の付いた日付は暫定的な日付であり、変更されることがあります。
| バージョン | サポートされましたか? | リリース日 | サポート終了日 |
|---|---|---|---|
| 1.36 | ある | 2026年6月26日 | 2027年8月1日 † |
更新の準備
クラスタを更新した際に、デプロイ済みのアプリに影響を与える可能性のある変更点の完全なリストについては、バージョン 1.36 に関する「 community Kubernetes 変更履歴 」および「 IBM バージョン変更履歴 」をご確認ください。 また、「 Kubernetes 役立つ警告 」もご参照ください。
- Kubernetes APIサーバーおよびKonnectivityトンネルはポート443で提供されています
-
Kubernetes のAPIサーバーおよびKonnectivityトンネルは、動的に割り当てられたノードポート(例:
20000–32767の範囲内のポート)ではなく、標準の HTTPS ポート443経由で提供されるようになりました。 トラフィックはホスト名ベースのルーティングによって適切なバックエンドサービスにルーティングされます。そのため、すべてのサービスがポート443を共有しているにもかかわらず、各関数には専用のホスト名が割り当てられています。 この変更により、制限の厳しいネットワーク環境からクラスターへの接続が容易になります。これは、ファイアウォールやアウトバウンド制御を通じて非標準のポートを通す必要がなくなるためです。 このクラスターは、プライベートおよびパブリックのサービスエンドポイントを通じて、2つの専用ホスト名を公開しています:<cluster>.api.<region-domain>— Kubernetes APIサーバーのエンドポイント<cluster>.tunnel.<region-domain>— コントロールプレーンとワーカーノード間の通信に使用されるKonnectivityトンネルのエンドポイント
この機能は、IKSバージョン 1.36 以降、以下のリージョンで利用可能です:モントリオール(
ca-mon)、チェンナイ(in-che)、ムンバイ(in-mum)。その他のリージョンへの対応も間もなく開始される予定です。パブリックサービスエンドポイントを使用しているクラスターを更新した場合、依然としてパブリックサービスエンドポイント URL を参照している kubeconfig は、古いポートを使い続けてしまうため、
kubectlコマンドが接続タイムアウトにより失敗してしまいます。 これを回避するには、ibmcloud ks cluster configを実行して新しい kubeconfig をダウンロードするか、既存の kubeconfig 内のポートを手動で 443 に変更してください。- 新しいクラスター: 特に必要な対応はありません。 新しいクラスターはポート 443 のエンドポイントで作成され、ダウンロードした kubeconfig ではすでにポート 443 が使用されています。
- プライベートサービスエンドポイントのみを使用するクラスターの更新: 直ちに対応する必要はありません。 以前の NodePort をターゲットとする既存の接続は、アップグレード後も引き続き機能します。 ダウンロードした新しいkubeconfigは、ポート443のエンドポイントを使用します。
- カスタムネットワークルール: 古い高番号のコントロールプレーンポートを明示的に参照しているファイアウォール、セキュリティグループ、またはアウトバウンド許可リストのルールを更新し、代わりにポート 443 での HTTPS へのアウトバウンド通信を許可するようにしてください。 以前のハイナンバーポートを固定していたルールは、すべて削除しても構いません。
- IPベースの許可リスト: パブリックサービスエンドポイントのDNSレコードは、従来のロードバランサー(NLB)のIPアドレスではなく、Akamai IP Protect(IPP)のフロントエンドIPアドレスに解決されるようになりました。 ファイアウォールまたはエグレスルールで、宛先IPアドレスに基づいてクラスターへのトラフィックが許可されている場合は、最新のAkamai IPP IP範囲を使用するように設定を更新してください。
- Kubernetes APIサーバーへの匿名アクセスは、現在制限されています
-
Kubernetes API サーバーへの匿名アクセスは、現在、ヘルスチェックエンドポイント(
/healthz、/readyz、/livez、/livez/ping)に限定されています。その他のすべてのエンドポイントでは認証が必要です(例:/version)。これにより、system:anonymousやsystem:unauthenticatedへのアクセス権を誤って付与してしまうような、RBAC の設定ミスが原因で生じるリスクを軽減できます。 - Kubernetes ダッシュボードは非推奨となりました
-
オープンソースの「 Kubernetes 」ダッシュボードは非推奨となり、アーカイブされました。 「 Kubernetes 」ダッシュボードは、新しくプロビジョニングされたクラスターにはインストールされなくなり、 1.36 にアップグレードする際には、以前のバージョンのクラスターから削除されます。 「Headlamp」アドオンは、 Kubernetes のUIを置き換える形で利用可能です。
- NVIDIA GPUドライバーは自動的にインストールされなくなりました
-
Kubernetes バージョン 1.36 以降、 IBM Cloud Kubernetes Service では、GPU ワーカーノードへの NVIDIA GPU ドライバーの自動インストールが行われなくなりました。 GPUワークロードを実行するには、GPUドライバーを自分でインストールし、管理する必要があります。 詳細については、「 自己管理型GPUドライバーへの移行 」を参照してください。
クラスタ・オートスケーラーは、現時点ではバージョン 1.36 に対応していません。 オートスケーラーがインストールされている場合は、クラスターをバージョン 1.36 に更新しないでください。
マスターの前に行う更新
Kubernetes のマスターを更新する前に、以下の変更点を確認してください。
| タイプ | 説明 |
|---|---|
| 削除: ツリー内の Portworx ボリュームプラグイン | Kubernetes ( 1.36 )では、標準で提供されていた Portworx ボリュームプラグインが削除され、 Portworx CSIドライバーへの移行が完了しました。 CSIMigrationPortworx の機能ゲート(GAおよび 1.33 以降でロック済み)と、alpha InTreePluginPortworxUnregister の機能ゲートも削除され、ツリー内のすべての Portworx
ボリューム操作はCSIにリダイレクトされます。 更新を行う前に、 Portworx のCSIドライバーがインストールされていること、および StorageClass、 PersistentVolume、
PersistentVolumeClaim のリソースがCSIドライバーを参照していることを確認してください。 アップデート後、依然としてin-treeプラグインに依存しているクラスターでは、 Portworx ボリュームにアクセスできなくなります。 |
| 変更点: IPおよびCIDRの検証を厳格化しました | APIサーバーでは、 StrictIPCIDRValidation 機能ゲートがデフォルトで有効になっています。 IP または CIDR 値を格納する API フィールドでは、先頭に不要なゼロが付いたアドレス(例: 10.0.0.5 ではなく 010.000.000.005 )や、ホストビットが曖昧な CIDR 値(例: 192.168.0.0/24 や 192.168.0.5/32 ではなく 192.168.0.5/24 )は、もはや受け付けられなくなりました。 Service、 NetworkPolicy、 EndpointSlice などのリソースについて、マニフェストとツールを確認し、更新を行う前に、正規形式ではない IP アドレスや CIDR 値を修正してください。 マスターが更新された後、無効な値を持つオブジェクトを作成または更新しようとするリクエストは拒否されます。 |
| 変更点: コントロールプレーンのメトリクスの名称を変更しました | volume_operation_total_errors メトリック(kube-controller-manager)は volume_operation_errors_total に、 etcd_bookmark_counts メトリックは etcd_bookmark_total にそれぞれ名称が変更されました。 古いメトリック名を参照しているカスタム監視ダッシュボードやアラートルールを使用している場合は、コントロールプレーンの更新後も監視が正常に機能し続けるよう、それらを新しい名前に更新してください。 |
削除済み: git-repo ボリュームプラグイン |
git-repo のボリュームプラグインは、デフォルトで無効化されており、再有効化するためのオプションはありません。また、「 GitRepoVolumeDriver 」機能ゲートは、もはや何の効果も持ちません。 このボリュームタイプは、バージョン 1.33 以降、 IBM Cloud Kubernetes Service ではサポートされなくなりました。 もしまだ gitRepo ボリュームを使用しているワークロードがある場合は、
git を使用してリポジトリをクローンする init コンテナによって作成された emptyDir ボリュームへ、それらを移行してください。 詳細については、「 gitRepo の組み込みボリュームドライバの削除 」を参照してください。 |
マスターの後に行う更新
Kubernetes のマスターを更新した後、必ず行う必要がある以下の変更点を確認してください。
| タイプ | 説明 |
|---|---|
非推奨: サービス .spec.externalIPs |
Service リソースの .spec.externalIPs フィールドは非推奨となっており、このフィールドが設定されている場合、APIサーバーは非推奨の警告を返すようになりました。 externalIPs の使用を中止し、外部トラフィックを LoadBalancer サービスまたは Ingress 経由でルーティングするように計画してください。 詳細については、「
外部IPアドレス 」を参照してください。 |
変更点: kubectl debug のデフォルトプロファイル |
kubectl debug のデフォルトプロファイルが、 legacy から general に変更されました。 legacy プロファイルの動作に依存するスクリプトやランブックがある場合は、 --profile=legacy を明示的に指定してください。 legacy プロファイルは、 Kubernetes
1.39 で削除される予定です。 詳細については、「 実行中のPodのデバッグ 」を参照してください。 |
変更点: client-go インフォーマーのイベント順序 (AtomicFIFO) |
client-goの AtomicFIFO 機能ゲートは、デフォルトで有効になっています。 インフォーマーストアは、項目ごとの OnAdd、 OnUpdate、および OnDelete ハンドラーが呼び出される前に、一貫性のあるリソースバージョンに完全に更新されるようになりました。また、インフォーマーの再同期処理が若干変更されたため、ハンドラーの呼び出しタイミングに目に見える違いが生じる可能性があります。
client-go を組み込んだカスタムコントローラーおよびオペレーターをテストします。 パフォーマンスの低下が見られる場合は、対応を進める間、独自のコントローラーバイナリにおいて、 AtomicFIFO のクライアント向け機能ゲート「go」を一時的に「 false 」に設定することができます。 |
| 変更点: CustomResourceDefinition の数値検証を厳格化しました | CustomResourceDefinition (CRD) 検証では、スキーマで設定されている場合、 int32、 int64、 float、および double の数値形式の範囲が厳格に適用されるようになりました。 すでに範囲外の値が設定されている既存のオブジェクトは、検証の段階的適用によって保持されますが、新規または更新された値は範囲内である必要があります。
これらの数値形式を使用しているカスタムリソースを確認してください。 |
| 非推奨: Credentialプラグインのallowlistフィールド | クライアント認証情報プラグインの許可リストにおいて、「 AllowlistEntry.Name 」フィールドの名称が「 AllowlistEntry.Command 」に変更されました。 認証情報プラグインの許可リストを設定する場合(例: kuberc を通じて)、新しいフィールド名を使用するように設定を更新してください。 |
非推奨: への直接アクセス metav1.FieldsV1.Raw |
metav1.FieldsV1 の Raw フィールドへの直接アクセスは非推奨となっています。 FieldsV1 を生成または読み取るコード(たとえば、管理対象フィールドを検査するコントローラやツールなど)は、新しいアクセサメソッドである NewFieldsV1(string)、 GetRawBytes()、
GetRawString()、および SetRawBytes() へ移行する必要があります。 |
| 必要な対応: カスタムスケジューラ「 PreBind 」プラグイン | スケジューラフレームワークは、 PreBind プラグインの並列実行に対応するようになりました。 カスタムスケジューラプラグインを管理している場合は、 PreBindPreFlight メソッドから PreBindPreFlightResult を返すように更新してください。 nil を返すと既存の順次実行動作が維持され、 AllowParallel: true を返すことでプラグインは並列実行を有効にします。 この操作は、カスタムスケジューラプラグインを実行しているクラスタにのみ適用されます。 |
| 必要な対応: DRAドライバ向けのきめ細かなRBAC | 「 DRAResourceClaimGranularStatusAuthorization 」機能ゲートが有効になっている場合( 1.36 ではベータ版)、動的リソース割り当て(DRA)ドライバおよびコントローラは、 ResourceClaim のステータスを更新するために、きめ細かなRBAC権限を必要とします。 スケジューラおよびコントローラには、 resourceclaims/binding にある update または patch が必要であり、DRA ドライバには、 resourceclaims/driver にある associated-node:update または arbitrary-node:update が必要ですが、これらはそれぞれの resourceNames によって制限されます。
DRAドライバーを実行している場合は、そのRBACを更新してください。 この操作は、DRA を使用しているクラスタにのみ適用されます。 |