非推奨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 |
移行方法
apiVersionを安定版に変更- APIバージョン間で変更されたフィールドを更新(例:
apps/v1でspec.selectorが必須に) kubectl apply --dry-run=serverでテスト- マニフェストを手動更新
自動検出
kubectl api-versionsでクラスターがサポートするAPIを確認でき、plutoやkubentなどのツールでマニフェスト全体の非推奨APIをスキャンできます。
ユースケース
クラスターを新しいバージョンにアップグレードする前に既存のKubernetesマニフェストを監査する。すべてのAPIバージョンがターゲットKubernetesリリースと互換性があることを確認します。