Member-only story

Argo CDによるKubernetesマルチクラスタ設定の自動化

gavin.zhou
14 min readOct 19, 2020

--

私の考えでは、GoogleのAnthosエンタープライズソリューションの最もクールな側面の1つは、Anthos Config Management (ACM)です。Gitレポを設定して、様々なクラスタをそこに接続すれば、GitOps的にコンフィグを標準化してドリフトを防ぐことができます。これは、様々なホスティングロケーションで数百から数千のクラスタを管理している大企業にとっては特に重要です。

ACM に触発されて、別の GitOps ソリューションである Argo CD を使って、このような機能を再現できないかと考えました。それは期待通りに動作し、Git レポでコンフィグファイルを変更したところ、両方のクラスタにシームレスに適用されました。

The Setup

簡単にするために、Google CloudのマネージドKubernetesサービスであるGKE上に2つのクラスタを2つの別々のリージョンに作成して、イーストとウェストのシナリオをシミュレーションしてみました。もちろん、Argo CD をクラスターのどこにでもインストールして、Git レポにアクセスできるようにしておくこともできます。

私は以下のシェルスクリプトを作成してすべてをブートストラップしましたが、本番用には可能であればTerraformを使ってインフラストラクチャを管理することをお勧めします。

#!/usr/bin/env bashexport PROJECT_ID=<YOUR-PROJECT-ID>export AUTH_NETWORK="<YOUR-IP-ADDRESS>/32" # change to your IP or use dotenv of course# enable apisgcloud services enable container.googleapis.com # Kubernetes Engine API# helper functionsset_location () {case $1 in"west")export ZONE="us-west2-b"

--

--

No responses yet