非推奨APIバージョンの検出

マニフェスト内のextensions/v1beta1やapps/v1beta2などの非推奨Kubernetes APIバージョンを特定します。現在の安定版APIへの移行パスを学びます。

API Compatibility

詳細な説明

非推奨Kubernetes APIバージョン

Kubernetesはリソースがベータから安定版に移行するにつれ、定期的にAPIバージョンを非推奨化・削除します。非推奨APIを使用すると新しいクラスターで警告が発生し、APIが削除されると完全に機能しなくなります。

非推奨APIの例

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: legacy-app
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: legacy
    spec:
      containers:
        - name: app
          image: myapp:2.0

バリデーターが検出する問題

  • 警告: 非推奨apiVersion 'extensions/v1beta1'。代わりにapps/v1を使用してください。

一般的な非推奨APIの移行先

非推奨API 代替 削除バージョン
extensions/v1beta1 (Deployment) apps/v1 k8s 1.16
extensions/v1beta1 (Ingress) networking.k8s.io/v1 k8s 1.22
apps/v1beta1 apps/v1 k8s 1.16
apps/v1beta2 apps/v1 k8s 1.16
batch/v1beta1 (CronJob) batch/v1 k8s 1.25
policy/v1beta1 (PodSecurityPolicy) policy/v1またはPod Security Standards k8s 1.25

移行方法

  1. apiVersionを安定版に変更
  2. APIバージョン間で変更されたフィールドを更新(例:apps/v1spec.selectorが必須に)
  3. kubectl apply --dry-run=serverでテスト
  4. マニフェストを手動更新

自動検出

kubectl api-versionsでクラスターがサポートするAPIを確認でき、plutokubentなどのツールでマニフェスト全体の非推奨APIをスキャンできます。

ユースケース

クラスターを新しいバージョンにアップグレードする前に既存のKubernetesマニフェストを監査する。すべてのAPIバージョンがターゲットKubernetesリリースと互換性があることを確認します。

試してみる — K8s Manifest Validator

フルツールを開く