☁️
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