メインコンテンツまでスキップ

FKE clusterバージョンアップグレードのベストプラクティス

D-FKEサービスはPortal ConsoleからKubernetes clusterのバージョンアップグレードをサポートしています。

A. 製品機能

  • masterとworker nodeの両方がアップグレードされます: プロセスは完全に自動化されており、ユーザーはclusterに直接介入することなく、ポータルから簡単に操作できます。
  • ゼロダウンタイムのmasterアップグレード: clusterがHAモード(3台のmaster)を使用している場合、システムは自動的にmasterを次のバージョン(例: 1.21 → 1.22)にダウンタイムなしでアップグレードします。masterが1台のclusterでは、数分間のmasterダウンタイムが発生し、その間Kubernetes APIが使用できませんが、アプリケーションのworkloadは正常に動作し続けます。
  • ゼロダウンタイムのworkerアップグレード: システムは各worker nodeを順番にRolling updateします。各workerはpod workloadをdrainし、node更新が完了するまでcordon(スケジュール無効)されます。

B. アップグレードプロセスの詳細

1. アップグレード前

  • clusterアップグレードのための環境をセットアップします。
  • 環境チェック: cluster status / network status。

2. アップグレード (nodeを順番にアップグレード: masterが先、次にworker)

  • nodeをcordonする。
  • nodeをdrainする。
  • nodeがready状態であることを確認する。
  • 古いcertsとkeysをバックアップ; 古いconfigsをバックアップ(master)。
  • apiserverのetcd-serversを更新(master)。
  • nodeに新バージョンのソフトウェアをインストール: kubelet、calico、container runtime、coredns、nodelocaldns、metrics serverなど。

3. アップグレード後

  • nodeに新バージョンのアドオンをインストール: CSI、CCM、Autoscaler。
  • アップグレード状態を確認する。
  • クリーンアップ。

C. clusterアップグレード時の推奨事項

  • clusterのアップグレードは、業務時間外や週末など、システム負荷が低い時間帯に実施してください。
  • 本番環境をアップグレードする前に、dev/uat環境でアプリケーションが新しいKubernetesバージョンと互換性があるかテストしてください。特に新しいKubernetes APIバージョンについて確認してください。
  • clusterバージョンを順番にアップグレードしてください(例: 1.21 → 1.22 → 1.23)。
  • clusterが常に最新のサポートバージョンを使用していることを確認してください(EOLバージョン表を参照)。
  • アップグレード前にcluster configurationをバックアップしてください: CDツールを使用するか、manifest/helm chartをバックアップしてください。
  • control planeのダウンタイムをゼロにするため、HA master(3台のmaster)でclusterをデプロイしてください。
  • アプリケーションworkloadのダウンタイムをゼロにするため、2台以上のHA workerでclusterをデプロイしてください。
  • Deployment、Replicaset、DaemonSetなどのWorkload Controllerを使用し、2台以上のreplicaでアプリケーションをデプロイしてください。単一のPodのデプロイは避けてください。
  • local storage(empty dir、hostpathなど)は使用せず、CSIを使用してください。
  • アプリケーションが複数のworker nodeで動作することを保証するために、Anti-Affinityルールをデプロイしてください。
  • アップグレード中にFPTのシステムがclusterに接続できるようファイアウォールのポートを開放してください(FKE controller: 103.160.90.33からcluster port tcp 6443、32085、2022; FPT Cloud Portal: 103.160.90.36、103.160.90.37、103.160.90.39からPublic IP port tcp 6443)。
  • worker nodeのRolling updateに十分なリソースを確保するため、アプリケーションのリソースサイジングを設計してください(clusterバージョンのアップグレード前にバッファとして1台のworkerをスケールアウトすることを検討してください)。

D. D-FKE EOLチャート

KubernetesバージョンアップストリームリリースFKE GAFKE標準サポート終了
1.212021年4月20212024年9月
1.222021年8月20222024年11月
1.232021年12月20232025年2月
1.242022年5月
1.252022年8月2023年10月2025年8月
1.262022年12月2024年1月2025年11月
1.272023年4月2024年2月2026年2月
1.282023年8月2024年3月2026年5月
1.292024年1月