Member-only story
マルチクラスターKubernetes管理ソリューション
Rancher、Google Anthos、Azure Arc、Volterraなどの一般的なSaaSソリューションの概要と、オープンソースの代替品を紹介します。
より多くの組織がインフラをKubernetesに移行するにつれ、問題はもはや “すべてのアプリケーションを単一のKubernetesクラスタで管理するにはどうすればいいか?”だけではなくなりました。今では、より多くのクラスタ管理者が、組織内のマルチクラスタをどのように管理するかに頭を悩ませています。Kubernetesは、ソフトアイソレーションのためのネームスペースや、単一のクラスタ内でのハードマルチテナンシーのための仮想クラスタに対応していますが、複数のクラスタを実行することが必要な場合もあります。
複数のクラスターを稼働させる理由としては、以下のようなものが挙げられます。
- 厳密な隔離:これには、コンプライアンス上の理由(例:dev/qa/stagingクラスタと本番クラスタの分離)や、顧客のニーズ(例:顧客のリクエストに基づく専用サービスの実行)があります。
- マルチリージョン:アプリケーションは、可用性、フェイルオーバー、レイテンシー、地域性(データ保護法など)の理由から、複数のリージョンで実行する必要があります。
- マルチクラウド:同様に、アプリケーションは、可用性/災害復旧プロトコルのために、またはベンダーロックインを避けるために、複数のクラウド上で実行する必要があるかもしれません。
- スケール:まれに、サービスのスケールがKubernetesの限界に達することがあります(例:GKEの場合、1つのクラスタに150kのポッドがあります。
複数のクラスターを管理することで、優れたCI/CDパイプラインである程度は実現できます。例えば、「CircleCIとArgoCDによるKubernetesのCI/CD」では、アプリのアプリパターンを活用して、単一のクラスタをブートストラップする方法を紹介しました。これは、ワークフローを単純化するために、異なるクラスタにデプロイするパイプラインに拡張することができます。いくつかの例を以下にリンクします。
マルチクラスター開発のためのTektonおよびArgo CDの紹介 — Red Hat Developer
Gitlab Core機能による複数のKubernetesのインテグレーション
しかし、真のマルチクラスター管理ソリューションには、アプリケーションのデプロイメント以上のものが必要です。セキュリティへに関する考慮事項(例:RBAC、マルチクラスターロギング)、コンフィグ/シークレット管理、さらには異なるKubernetesクラスター間での機能の平準化などがあります。この記事では、複数のKubernetesクラスタを管理するために、人気…