✅ 1. なぜバージョン管理が重要?
Kubernetesは活発に開発されていて、毎年3回(約4ヶ月に1回)新しいバージョンがリリースされています。
そのため、定期的にクラスタのアップグレードを行わないと、次のようなリスクがあります:
- サポート切れ(セキュリティ修正を受けられない)
- 古いAPIの非推奨化(使えなくなる)
- 新しい機能が使えない
📌 2. Kubernetesのバージョンの種類
Kubernetesのバージョンは次のように構成されています:
v1.28.3
↑ ↑ ↑
│ │ └─ パッチバージョン(バグ修正)
│ └── マイナーバージョン(機能追加・変更)
└──── メジャーバージョン(※現状は常に「1」)
Kubernetesでは、マイナーバージョンごとに最大3バージョン分のみ公式サポートされます(例:1.27、1.28、1.29がサポート中)。
⚙️ 3. アップグレードの基本方針
Kubernetesでは、1バージョンずつの段階的アップグレードが推奨されています。
- 例:1.26 → 1.27 → 1.28(※1.26 → 1.28のスキップはNG)
- Control Plane → Node の順番でアップグレード
また、アップグレード前には次のことを必ず確認しましょう:
- 非推奨(Deprecated)APIの確認
- 互換性のない変更点(Breaking Changes)
- 対応するクライアントバージョン(kubectlなど)
🧰 4. 各環境でのアップグレード例
✅ Minikubeやkindの場合(ローカル検証)
# 任意のKubernetesバージョンを指定
minikube start --kubernetes-version=v1.28.0
アップグレードではなく、新規作成で試すのが一般的です。
✅ kubeadm(自前構築クラスタ)
kubeadm upgrade plan
でアップグレードの準備を確認- Control Plane ノードから順にアップグレード
- Worker ノードは
kubeadm upgrade node
を使用
✅ マネージドサービス(EKS/GKE/AKSなど)
- コンソールやCLIから段階的にアップグレード
- Control Plane → Node Group の順で行う
- EKS では
eksctl upgrade cluster
などが利用可能
🔍 5. バージョンごとの差異の調べ方
公式の「Kubernetes CHANGELOG」や「Deprecated API一覧」を参考にします。
また、以下のCLIも有用です:
kubectl explain <resource>
で、現在のリソース構造を確認し、
kubectl api-resources
でAPIの一覧を確認することができます。
💡 6. バージョン管理のベストプラクティス
実施内容 | 解説 |
---|---|
✅ 定期的なバージョン確認 | リリースカレンダーを意識して追従 |
✅ 非推奨APIの事前チェック | --dry-run や kubectl diff を活用 |
✅ テスト環境での先行アップグレード | 本番前に動作確認 |
✅ バックアップの取得 | etcdやマニフェストを事前に保存 |
✅ ローリングアップデート | ワーカーノードを順番に更新して可用性を維持 |
🔚 まとめ
- Kubernetesは定期的にアップグレードが必要
- アップグレードは「1バージョンずつ」「Control Planeから」
- 非推奨APIの確認やテストがとても重要
- マネージドサービスでは専用ツール・手順に従う