Skip to content

Conversation

@jjchange10
Copy link
Owner

No description provided.

@github-actions
Copy link

github-actions bot commented Oct 15, 2025

🔄 GKE Version Upgrade Analysis

Version Change: 1.32.8-gke.11340001.33.5-gke.1162000


収集した情報を基に、GKE Version Upgrade Analysisレポートを作成します。

GKE Version Upgrade Analysis

📊 Version Change Summary

  • 変更レベル: Minor
  • 変更範囲: Kubernetes 1.32 → 1.33 (具体的には v1.33.5-gke.1162000)
  • アップグレードパス: 直接アップグレード可能(1.32から1.33へのマイナーバージョンアップグレード)

参照:


🚨 URGENT UPGRADE NOTES

最優先事項: 以下の変更は即座に確認と対応が必要です。

CrashLoopBackOff設定の変更

  • 影響: CrashLoopBackOffの初期遅延と最大遅延を設定している場合、新しいフィーチャーゲートReduceDefaultCrashLoopBackOffDecayにより推奨値(初期遅延1秒、最大遅延60秒)に変更可能。既存のKubeletCrashLoopBackOffMax設定との競合解決ポリシーが適用される
  • 対応: 既存のCrashLoopBackOff設定を確認し、新しいフィーチャーゲートとの互換性を検証する
  • 期限: アップグレード前に確認必須
  • 参照: Urgent Upgrade Notes - #130711 | Pod Lifecycle Documentation

CSIドライバーのIsLikelyNotMountPoint使用方法の変更(Action Required)

  • 影響: CSIドライバーがIsLikelyNotMountPointを呼び出す場合、falseが返されても必ずしもマウントポイントであることを意味しない。不規則なファイルでもマウントポイントでない場合にfalseが返される可能性がある
  • 対応: カスタムCSIドライバーを使用している場合、戻り値の正しい使用方法を確認し必要に応じて修正する
  • 期限: アップグレード前に必須
  • 参照: Urgent Upgrade Notes - #129370

nftables proxierの環境変数動作変更

  • 影響: KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK環境変数が明示的に非空の値に設定された場合のみカーネルバージョンチェックがスキップされるように変更
  • 対応: nftablesモードを使用している場合、環境変数設定を確認する
  • 期限: アップグレード時
  • 参照: Urgent Upgrade Notes - #130401

スケジューラープラグイン開発者向けAPI変更(Action Required)

  • 影響: UpdatePodTolerationsアクションタイプがUpdatePodTolerationに名前変更された
  • 対応: カスタムスケジューラープラグインを開発している場合、コードを更新する必要がある
  • 期限: アップグレード前に必須
  • 参照: Urgent Upgrade Notes - #129023

MultiCIDRServiceAllocatorのGA化(Action Required)

  • 影響: MultiCIDRServiceAllocator機能がStableに、DisableAllocatorDualWriteがBeta(デフォルト無効)に。ServiceCIDRをAPIオブジェクト経由で定義可能に
  • 対応: Service CIDRの重複を防ぐため、必要に応じてValidatingAdmissionPolicyを設定する。既存の動作(クラスタごとに1つのServiceCIDRのみ)を維持したい場合は明示的な設定が必要
  • 期限: アップグレード前に計画を立てる
  • 参照: API Change - #128971

🔒 Security Updates

CVE修正

CVE-2025-5187: Nodesが自身をOwnerReferenceを追加して削除可能

  • 概要: NodeRestrictionアドミッションコントローラーの脆弱性により、nodeユーザーがクラスタースコープリソースへのOwnerReferenceをパッチして自身のnodeオブジェクトを削除可能。OwnerReferenceリソースが存在しないか削除されると、ガベージコレクションによりnodeオブジェクトが削除される
  • 影響:
    • kube-apiserver v1.31.0 - v1.31.11
    • kube-apiserver v1.32.0 - v1.32.7
    • kube-apiserver v1.33.0 - v1.33.3
  • 修正内容: v1.33.4でnodeがownerReferencesを変更できないようにNodeRestrictionを強化
  • 推奨アクション: v1.33.4以降へのアップグレードを推奨(v1.33.5に含まれる)
  • 参照: CVE-2025-5187 | v1.33.4 Security Information

CVSS評価: Medium (6.7)

CVE-2025-4563: DRA認可チェックバイパス

  • 概要: NodeRestrictionアドミッションコントローラーの脆弱性により、DynamicResourceAllocation機能が有効な場合にノードがDRA認可チェックをバイパス可能。Pod作成時に適切な検証が実行されないため、権限昇格の可能性がある
  • 影響:
    • kube-apiserver v1.32.0 - v1.32.5
    • kube-apiserver v1.33.0 - v1.33.1
  • 修正内容: v1.33.2で修正済み
  • 推奨アクション: v1.33.2以降へのアップグレード(v1.33.5に含まれる)
  • 参照: CVE-2025-4563 | v1.33.2 Security Information

CVSS評価: Low (2.7)

CVE-2024-51744修正

  • 概要: セキュリティ脆弱性CVE-2024-51744が修正された
  • 影響: 認証、クラウドプロバイダー、ノードコンポーネント
  • 修正内容: v1.33.0で修正済み
  • 推奨アクション: v1.33.0以降を使用(v1.33.5に含まれる)
  • 参照: Bug Fix - #128621

セキュリティ強化

ServiceAccountNodeAudienceRestriction機能のデフォルト有効化

  • 内容: kubeletが要求するService Accountトークンのaudience値がPodのspec volumeに含まれていることを検証するNodeRestriction admissionがデフォルトで有効化
  • 影響: Service Accountトークンのaudience検証が厳格化される
  • 推奨設定: 特に設定変更は不要だが、カスタムトークン処理を行っている場合は動作を確認
  • 参照: Feature - #130017

X.509クライアント証明書認証のUID読み取りサポート

  • 内容: X.509クライアント証明書のsubject name RDN(object ID 1.3.6.1.4.1.57683.2)からユーザーUIDを読み取れるように。Beta機能としてAllowParsingUserUIDFromCertAuthフィーチャーゲートで制御可能
  • 影響: 証明書ベース認証のセキュリティが向上
  • 推奨設定: デフォルトで有効。無効化が必要な場合は明示的にフィーチャーゲートを設定
  • 参照: API Change - #127897

StrictIPCIDRValidation機能

  • 内容: IPアドレスとCIDRブロックの検証が厳格化。IPv4アドレスのオクテットに先頭の0を許可しない、IPv4マップのIPv6値(例: ::ffff:192.168.0.1)を禁止
  • 影響: CVE-2021-29923のような異なるコンポーネント間でのIP解釈の違いによるセキュリティ問題を防止
  • 推奨設定: Alpha機能としてフィーチャーゲートで制御。有効化を検討
  • 参照: API Change - #122550, #128786

💥 Breaking Changes

v1 Endpoints APIの非推奨化

  • 変更点: v1 Endpoints APIが正式に非推奨(Deprecated)となった。APIは削除されないが、すべてのユーザーはEndpointSlice APIを使用すべき
  • 影響範囲: Endpoints APIを直接使用しているアプリケーション、カスタムコントローラー
  • 移行方法: EndpointSlice API(discovery.k8s.io/v1)への移行を計画する
  • 影響度: Medium
  • 参照: Deprecation - #130098

Pod status.resizeフィールドの非推奨化

  • 変更点: pod.status.resizeフィールドが非推奨となり、今後設定されない。代わりにPodResizeInProgressPodResizePendingの2つの新しいConditionが使用される
  • 影響範囲: Podのリサイズステータスを監視しているツールやアプリケーション
  • 移行方法: 新しいConditionベースのステータス確認に移行する
  • 影響度: Medium
  • 参照: Deprecation - #130733

resource.k8s.io/v1beta1の非推奨化

  • 変更点: DRA(Dynamic Resource Allocation)のresource.k8s.io/v1beta1 APIが非推奨となり、1.36で削除予定。v1beta2を使用すべき
  • 影響範囲: DRAを使用しているクラスタ
  • 移行方法: v1beta2 APIへ移行する
  • 影響度: High(DRA使用時)
  • 参照: API Change - #129970

WatchFromStorageWithoutResourceVersion機能の非推奨化

  • 変更点: WatchFromStorageWithoutResourceVersion機能が非推奨となり、有効化できなくなった
  • 影響範囲: この機能を明示的に使用している場合
  • 移行方法: 機能の削除に備えた代替手段の検討
  • 影響度: Low
  • 参照: Deprecation - #129930

DRA "All" devices動作変更

  • 変更点: Kubernetes 1.33では、"All"デバイスを要求した場合、最低1つのデバイスを持つノードのみが選択されるように変更。1.32以前はデバイスがないノードもスケジューリング対象だった
  • 影響範囲: DRAで"All"デバイス要求を使用している場合
  • 移行方法: デバイスなしでのスケジューリングが必要な場合は、優先順位リスト機能で代替("all"デバイスと"count: 0"の組み合わせ)
  • 影響度: High(DRA使用時)
  • 参照: API Change - #129560

StatefulSet serviceName検証の厳格化

  • 変更点: 新しいStatefulSetの.spec.serviceNameフィールドがDNS1123検証をパスする必要がある。既存の無効な値を持つStatefulSetはPodを作成できないため削除すべき
  • 影響範囲: 無効なserviceNameを持つStatefulSet
  • 移行方法: 無効なserviceNameを持つStatefulSetを削除し、有効な名前で再作成
  • 影響度: Medium
  • 参照: API Change - #130233

InPlacePodVerticalScaling: メモリ制限の減少制限

  • 変更点: メモリリサイズポリシーがRestartContainerに設定されていない限り、メモリ制限を減少できない。Container resizePolicyは変更不可に
  • 影響範囲: In-place Pod垂直スケーリングを使用している場合
  • 移行方法: メモリ制限を減少させる必要がある場合は、RestartContainerポリシーを設定
  • 影響度: Medium
  • 参照: API Change - #130183

DRA ResourceClaim最大Pod数の増加

  • 変更点: 同じResourceClaimを使用できるPod数の上限が32から256に増加。この緩和された制限を使用しているクラスタをKubernetes 1.32.0にダウングレードすることはサポートされない
  • 影響範囲: DRA使用時のダウングレードパス
  • 移行方法: 1.33へのアップグレード後は1.32へのダウングレードを避ける
  • 影響度: Medium(ダウングレード時)
  • 参照: API Change - #129543

✨ New Features & Improvements

主要な新機能

In-Place Pod Vertical Scaling(Beta)

  • 機能名: Podのリソース(CPU/メモリ)をPodを再起動せずにインプレースで変更可能。Betaに昇格し、デフォルトで有効化

User Namespaces Support(Beta、デフォルト有効)

  • 機能名: ユーザーネームスペースサポートがUserNamespacesSupportフィーチャーゲートによりデフォルトで有効化

NFTables Mode(GA)

  • 機能名: kube-proxyのnftablesモードがGA(Generally Available)に昇格。--proxy-mode nftablesで選択可能

Service trafficDistribution PreferClose(GA)

  • 機能名: ServiceのtrafficDistributionフィールドとPreferCloseオプションがGAに昇格。トポロジーを考慮したルーティングが可能

Recursive Read-only (RRO) Mounts(GA)

  • 機能名: 再帰的な読み取り専用マウントがGAに昇格(KEP-3857)

Image Volume Sources(Beta)

  • 機能名: イメージボリュームソースがBetaに昇格。subPath/subPathExprをサポート
    • 新しいkubeletメトリクス追加: kubelet_image_volume_requested_totalkubelet_image_volume_mounted_succeed_totalkubelet_image_volume_mounted_errors_total
    • 参照: API Change - #130135

HPA Configurable Tolerance(Alpha)

  • 機能名: HorizontalPodAutoscalerに新しいtoleranceフィールドを追加し、クラスタ全体のデフォルトをオーバーライド可能。HPAConfigurableToleranceフィーチャーゲートで有効化

Custom Stop Signals(Alpha)

  • 機能名: コンテナのライフサイクルでカスタムストップシグナルを設定可能

CPUManager Policy Options(GA)

  • 機能名: CPUManagerのポリシーオプションサポートがGA
    • 新オプションstrict-cpu-reservation: 有効時、reservedSystemCPUsのCPUコアをシステムデーモンと割り込み処理専用に
    • 参照: API Change - #130535 | Feature - #130290

Pod-level Hugepage Resources

  • 機能名: Pod APIがspecレベルでhugepageリソースをサポート

Sidecar Containers(GA)

  • 機能名: Sidecarコンテナ機能がGAに昇格。フィーチャーゲートはデフォルト値にロックされ、v1.36で削除予定

CoordinatedLeaderElection(Beta)

  • 機能名: coordination.k8s.io/v1beta1/LeaseCandidate APIタイプが導入され、CoordinatedLeaderElectionがBetaに

Job関連機能のGA/Stable化

  • 機能名: 以下のJob機能がStableに昇格

Streaming List Responses

  • 機能名: API serverが大きなコレクションを提供する際のメモリ使用量を大幅削減

パフォーマンス改善

  • SchedulerPopFromBackoffQ(Beta、デフォルト有効): activeQが空の場合にbackoffQからPodをポップし、スケジュール可能なPodを即座に処理。スケジューリング性能向上

  • Podリソースキャッシング: スケジューラーフレームワークでNodeInfoにPodを追加する際にPodリソースをキャッシュし、スケジュール不可能なPod処理時の性能向上

  • Topology Spread性能向上: 必須トポロジースプレッドを持つPodのスケジューリング性能向上

  • Asynchronous Preemption(Beta): スケジューラーの非同期プリエンプション機能がBetaに昇格し、デフォルトで有効化(SchedulerAsyncPreemption

安定性向上

  • 1.32リグレッション修正:

    • postStartフックを持つPodが起動しない問題を修正
    • kubelet再起動後にノードがステータス報告とサービング証明書更新に失敗する問題を修正
    • 参照: Bug Fix - #129946 | Bug Fix - #130348
  • kube-proxyメモリリーク修正: EndpointSliceCacheのメモリリークとUDPワークフローでの潜在的メモリリークを修正

  • Volume関連の安定性向上:

    • kubelet再起動時にPVC削除中のPodのボリュームがアンマウントされる問題を修正
    • マルチパスストレージ(iSCSI、Fibre Channel)のパーティション対応改善
    • 参照: Bug Fix - #130335 | Bug Fix - #128086

監視とオブザーバビリティ

  • /flagz、/statusz、/statusエンドポイント追加: 各種Kubernetesコンポーネント(kubelet、kube-scheduler、kube-controller-manager、kube-proxy)に新しい診断エンドポイントを追加

  • PSI(Pressure Stall Information)メトリクス: ノードメトリクスにPressure Stall Information追加

  • audit logレイテンシ注釈: 認証と認可に時間がかかるリクエストの監査ログにapiserver.latency.k8s.io/authenticationapiserver.latency.k8s.io/authorization注釈を記録

  • apiserver_storage_digestメトリクス: etcdとwatch cacheのダイジェストを5分ごとに計算し公開


📦 Manifest Impact Analysis

影響を受けるマニフェスト

リポジトリ内のすべてのマニフェストを確認した結果、すべてのマニフェストは現在安定したAPIバージョンを使用しており、Kubernetes 1.33への直接的な影響はありません

manifests/deployment.yaml

  • 使用しているAPIバージョン: apps/v1
  • 影響内容: 影響なし(apps/v1は安定版APIで変更なし)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: Kubernetes 1.33 API Changes

manifests/statefulset.yaml

  • 使用しているAPIバージョン: apps/v1
  • 影響内容: 影響なし(apps/v1は安定版API)。ただし、.spec.serviceNameフィールドは"sample-db"で有効なDNS1123名なので問題なし
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: StatefulSet Validation - #130233

manifests/service.yaml

  • 使用しているAPIバージョン: v1
  • 影響内容: 影響なし(v1 Serviceは安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: なし

manifests/ingress.yaml

  • 使用しているAPIバージョン: networking.k8s.io/v1
  • 影響内容: 影響なし(networking.k8s.io/v1は安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 注記: 非推奨のkubernetes.io/ingress.classアノテーションを使用しているが、GKE環境では引き続き動作する
  • 参照: なし

manifests/pvc.yaml

  • 使用しているAPIバージョン: v1
  • 影響内容: 影響なし(v1 PersistentVolumeClaimは安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: なし

manifests/hpa.yaml

  • 使用しているAPIバージョン: autoscaling/v2
  • 影響内容: 影響なし(autoscaling/v2は安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: なし

manifests/job.yaml

  • 使用しているAPIバージョン: batch/v1
  • 影響内容: 影響なし(batch/v1は安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: なし

manifests/cronjob.yaml

  • 使用しているAPIバージョン: batch/v1
  • 影響内容: 影響なし(batch/v1は安定版API)
  • 必要なアクション: なし
  • 優先度: なし
  • 参照: なし

新機能で改善できる可能性

以下のマニフェストは、Kubernetes 1.33の新機能を活用してパフォーマンスやセキュリティを改善できる可能性があります:

manifests/deployment.yaml - In-Place Pod Vertical Scaling

  • 適用できる新機能: In-Place Pod Vertical Scaling(Beta、デフォルト有効)
  • 期待される効果: CPU/メモリリソースの調整時にPodを再起動せずにインプレースで変更可能。ダウンタイムの削減と高速なスケーリング
  • 実装方法: Deploymentに対してkubectl set resourcesやPatchを使用してリソース変更を適用すると、自動的にインプレーススケーリングが試行される(適用条件を満たす場合)
  • 参照: In-Place Pod Vertical Scaling - #130905

manifests/hpa.yaml - HPA Configurable Tolerance

  • 適用できる新機能: HPA Configurable Tolerance(Alpha)
  • 期待される効果: HPAのtoleranceをクラスタ全体のデフォルトではなく個別に設定可能。より細かいスケーリング制御
  • 実装方法: HPAConfigurableToleranceフィーチャーゲートを有効化し、HPAにspec.toleranceフィールドを追加
  • 参照: HPA Tolerance - #130797

manifests/service.yaml - Traffic Distribution PreferClose

  • 適用できる新機能: Service trafficDistribution PreferClose(GA)
  • 期待される効果: トポロジーを考慮したルーティングによりレイテンシ削減とネットワークコスト最適化
  • 実装方法: Serviceにspec.trafficDistribution: PreferCloseを追加
  • 参照: Traffic Distribution - #130673

manifests/statefulset.yaml - Hugepage Resources

  • 適用できる新機能: Pod-level Hugepage Resources
  • 期待される効果: データベース(PostgreSQL)のメモリ性能向上(該当する場合)
  • 実装方法: Podのspecレベルでhugepageリソースを指定
  • 参照: Hugepage Resources - #130577

📚 References

このセクションに、分析で参照したすべてのリリースノートのリンクをまとめます:

主要リリースノート

重要なセクション

GitHub PRs

  • すべてのPRは上記のセクションで具体的に参照しています(例: #130711, #129370, など)

📋 アップグレード推奨事項

事前準備チェックリスト

  1. セキュリティ対応の確認

  2. CSIドライバーの確認

    • カスタムCSIドライバーを使用している場合、IsLikelyNotMountPointの使用方法を確認
  3. nftablesモードの確認

    • kube-proxyでnftablesを使用している場合、環境変数設定を確認
  4. カスタムスケジューラープラグインの更新

    • UpdatePodTolerationsUpdatePodTolerationへの名前変更に対応
  5. Service CIDR管理戦略の決定

    • MultiCIDRServiceAllocatorのGA化に伴い、必要に応じてValidatingAdmissionPolicyを設定
  6. 非推奨API使用状況の確認

    • Endpoints API(v1)の使用状況を確認し、EndpointSlice APIへの移行計画を立てる
    • pod.status.resizeを監視している場合、新しいConditionベースの確認に移行

アップグレード後の検証項目

  1. セキュリティ機能の動作確認

    • ServiceAccountNodeAudienceRestrictionが正しく動作しているか確認
  2. In-Place Pod Vertical Scalingのテスト

    • Beta機能として有効化されているため、動作確認を実施
  3. User Namespaces Supportの動作確認

    • デフォルトで有効化されているため、コンテナの動作に影響がないか確認
  4. 監視とメトリクスの確認

    • 新しいエンドポイント(/flagz、/statusz等)が利用可能か確認
    • 新しいメトリクスが正しく収集されているか確認
  5. ネットワーク動作の確認

    • kube-proxyのメモリリーク修正により正常に動作しているか確認
    • Sidecarコンテナのネットワーク動作確認

分析完了: このレポートはKubernetes 1.33.5-gke.1162000への​​アップグレードに関する包括的な分析です。すべての情報は公式リリースノートに基づいており、各項目には参照リンクが含まれています。


🤖 Analyzed by Claude Code (Headless Mode) | Download Full Report

@github-actions
Copy link

github-actions bot commented Oct 15, 2025

✅ Deprecated API Detection Report

Target Version: v1.33

No deprecated Kubernetes APIs detected in your manifests.


🔍 Scanned by Pluto | Download Full Report

jjchange10 and others added 4 commits October 16, 2025 21:18
- Add GKE version upgrade workflow triggered by version file changes
- Add Terraform configuration for GitHub Actions service account
- Add Workload Identity Federation setup for secure authentication
- Add GKE version configuration files for dev environment
- Add setup documentation for GitHub Actions integration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@jjchange10 jjchange10 merged commit 6e3b47b into main Oct 21, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants