☁️

Alibaba Cloud ACS 入門:ArgoCDでGitOpsを始めよう

に公開

前回はAlibaba Cloudの完全サーバーレスKubernetesサービス「Container Service(ACS)」の概要を紹介しました。今回は、実際にACS上にGitOpsの仕組みを構築し、ArgoCDを使って自作Helmチャートをデプロイしてみます。

1. 前提条件

以下の環境を前提とします:

  • ACSクラスタが作成済み
  • kubectl と helm コマンドがローカルにインストール済み
  • GitHubにHelmチャートを格納したリポジトリを用意済み

2. ArgoCDのインストール

ACSクラスタにArgoCDをインストールします。まずはargocdという名前空間を作成し、Helmでインストールします。

kubectl create namespace argocd

helm repo add argo https://argoproj.github.io/argo-helm
helm repo update

helm install argocd argo/argo-cd \
  --namespace argocd

インストール後、ArgoCDのサーバーにアクセスするための外部IPを確認します。

kubectl get svc -n argocd

AlibabaCloudのALBを作成して、Ingressからアクセスします。

3. 初期パスワードの取得とログイン

ArgoCD UIにアクセスしたら、初期ユーザーadminのパスワードを取得します。

kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d

Webブラウザでアクセスし、ログインします。

4. GitHubリポジトリの連携

ArgoCD UIまたはCLIから、GitHub上のHelmチャートのリポジトリを連携させます。

argocd repo add https://github.com/<ユーザー名>/<リポジトリ名>.git

必要に応じて、パーソナルアクセストークン(PAT)の設定も行ってください。

5. アプリケーションのデプロイ

次に、自作Helmチャートを使ってアプリケーションをデプロイします。

argocd app create my-app \
  --repo https://github.com/<ユーザー名>/<リポジトリ名>.git \
  --path helm/my-app \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default \
  --helm-set image.tag=latest

my-app というアプリケーションが自動的にデプロイされ、Gitリポジトリの変更に応じて自動で更新されるようになります。

6. まとめ

今回は、Alibaba CloudのACS上にArgoCDをインストールし、GitHubと連携してHelmチャートを使ったGitOpsを実現しました。これにより、インフラとアプリケーションの変更をGitで一元管理し、変更の可視性や再現性を高めることができます。

次回は、ApplicationSetを使ったマルチ環境管理について紹介する予定です。

Discussion