GitOps を有効にし、Git リポジトリを接続し、最初のアプリケーションを宛先クラスターにデプロイします。
このガイドを完了すると、以下のことができるようになります。
-
Argo CD コンソールへのパブリックアクセスが有効になる
-
Git リポジトリが Argo CD に接続される
-
アプリケーションが宛先クラスターにデプロイされる
前提条件
開始する前に、以下が準備できていることを確認してください。
-
フリート管理が有効になっていること。
-
複数のクラスターがフリートインスタンスに関連付けられていること。
-
AliyunAdcpFullAccess 権限が RAM ユーザーに付与されていること。
-
(CLI のみ) フリートインスタンスの kubeconfig が ACK One コンソールからダウンロードされ、kubectl がフリートに接続するよう設定されていること。
-
(CLI のみ) 最新バージョンの Alibaba Cloud CLI がインストールされ、設定されていること。
課金
GitOps を有効にすると、以下の課金対象リソースが作成されます。
-
Argo CD API と UI エンドポイントを公開するための Server Load Balancer (SLB) インスタンス
-
Argo CD サービス用の 2 vCPU、4 GB メモリの従量課金の Elastic Container Instance (ECI) インスタンス
詳細については、「マルチクラスターフリートのクラウドリソースの課金」をご参照ください。
サポートされているリージョン
GitOps は、マルチクラスターフリートとワークフロークラスターをサポートするすべてのリージョンで利用できます。
ステップ 1:GitOps コンソールへのパブリックアクセスを有効にする
GitOps は ACK One フリートインスタンスでデフォルトで有効になっていますが、Argo CD コンソールは Virtual Private Cloud (VPC) 内からのみアクセス可能です。インターネット経由でアプリケーションを管理するには、パブリックアクセスを有効にする必要があります。
パブリックアクセスを有効にすると、セキュリティリスクが生じます。アクセスを信頼できる IP アドレスまたは CIDR ブロックに制限するために、必ずアクセス制御リスト (ACL) を設定してください。
コンソールの使用
-
ACK One コンソールにログインします。左側のナビゲーションウィンドウで、[フリート] > [マルチクラスターアプリケーション] を選択します。
-
[マルチクラスター GitOps] ページで、フリート名の横にある
アイコンをクリックし、フリートを選択します。 -
GitOps が有効になっていない場合は、[GitOps の有効化] をクリックし、[OK] をクリックします。すでに有効になっている場合は、[GitOps コンソール] ボタンが表示されます。
-
[パブリックアクセス] の横にある [有効化] をクリックします。[パブリックアクセスの有効化] ダイアログボックスで、ホワイトリストに追加する IP アドレスまたは CIDR ブロックを入力し、[OK] をクリックします。
-
更新が完了したら、[GitOps コンソール] をクリックして Argo CD コンソールを開きます。
Alibaba Cloud CLI の使用
GitOps とパブリックアクセスを同時に有効にできます。<your_clusterid> をフリートインスタンス ID に、AccessControlList の値を信頼できる CIDR ブロックに置き換えてください。
CIDR ブロックの詳細については、「Argo CD へのパブリックアクセスを有効にする」をご参照ください。
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --PublicAccessEnabled true --AccessControlList "[\"10.100.XX.XX/24\"]" --ArgoCDEnabled true
RAM ユーザーの AccessKey を使用する場合は、まず RAM ユーザーに AliyunAdcpFullAccess 権限を付与してください。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
ステップ 2:宛先クラスターへのアプリケーションのデプロイ
Git リポジトリを接続し、gitops-demo の例を使用してアプリケーションをデプロイします。Argo CD UI または CLI のいずれかを使用できます。
Argo CD UI を使用したデプロイ
Argo CD へのログイン
[マルチクラスター GitOps] ページで、[GitOps コンソール] をクリックします。サインインページで、[LOG IN VIA ALIYUN] をクリックして、シングルサインオン (SSO) を使用して Alibaba Cloud アカウントでサインインします。
リポジトリの接続
-
左側のナビゲーションウィンドウで [Settings] をクリックし、[Repositories] > [+ Connect Repo] を選択します。
-
以下のパラメーターを設定し、[CONNECT] をクリックします。成功すると、[CONNECTION STATUS] に [Successful] と表示されます。
エリア パラメーター 値 接続方法の選択 — VIA HTTP/HTTPS HTTP/HTTPSを使用したリポジトリ接続 タイプ git プロジェクト default リポジトリ URL https://github.com/AliyunContainerService/gitops-demo.gitサーバー検証のスキップ このチェックボックスを選択します 

アプリケーションの作成
-
左側のナビゲーションウィンドウで [Applications] を選択し、[+ NEW APP] をクリックします。
-
以下のパラメーターを設定し、[CREATE] をクリックします。
エリア パラメーター 値 全般 Application Name echo-server-demoプロジェクト名 default 同期ポリシー — [Automatic] を選択します。Argo CD は 3 分ごとにリポジトリをチェックし、変更を自動デプロイします。[Manual] の場合は、[SYNC] をクリックしてデプロイをトリガーします。 同期オプション — [Namespace の自動作成] を選択します ソース リポジトリ URL https://github.com/AliyunContainerService/gitops-demo.gitを選択しますリビジョン HEAD Path manifests/helm/echo-serverデスティネーション クラスターURL 宛先クラスターを選択します Namespace echo-server-demoHelm VALUES ファイル values.yaml -
[アプリケーション] ページで、
echo-server-demoアプリケーションに ステータス: 正常 と 同期済み が表示されていることを確認します。[同期ポリシー] を 手動 に設定した場合は、[同期] をクリックしてデプロイをトリガーします。
-
アプリケーション名をクリックして、その Kubernetes リソースのトポロジとステータスを表示できます。

Argo CD CLI を使用したデプロイ
Argo CD へのログイン
-
Argo CD CLI v2.8.7 をダウンロードしてインストールします。
-
フリートインスタンスから初期管理者パスワードを取得します。
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
ポートフォワーディングを使用してログインします。デフォルトのユーザー名は
adminです。export ARGOCD_OPTS='--port-forward-namespace argocd --port-forward' argocd login Username: admin Password:期待される出力:
'admin:login' logged in successfully Context 'port-forward' updated -
デフォルトの
adminパスワードを更新します。argocd account update-password *** Enter password of currently logged in user (admin): *** Enter new password for user admin: *** Confirm new password for user admin:期待される出力:
Password updated Context 'port-forward' updated
リポジトリの接続
-
Git リポジトリを追加します。
argocd repo add https://github.com/AliyunContainerService/gitops-demo.git --name echo-server期待される出力:
Repository 'https://github.com/AliyunContainerService/gitops-demo.git' added -
リポジトリが追加されたことを確認します。
argocd repo list期待される出力:
TYPE NAME REPO INSECURE OCI LFS CREDS STATUS MESSAGE PROJECT git https://github.com/AliyunContainerService/gitops-demo.git false false false false Successful default -
利用可能なクラスターを一覧表示します。出力には、フリートインスタンスに関連付けられているすべてのクラスターが表示されます。
argocd cluster list期待される出力:
SERVER NAME VERSION STATUS MESSAGE PROJECT https://47.97.XX.XX:6443 c83f3cbc90a****-temp02 1.22+ Successful https://kubernetes.default.svc in-cluster Unknown Cluster has no applications and is not being monitored.次のステップのために、宛先クラスターのサーバー URL をメモしておいてください。
アプリケーションの作成と同期
-
アプリケーションを作成します。
https://47.97.XX.XX:6443を宛先クラスターのサーバー URL に置き換えてください。argocd app create echo-server-demo --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/helm/echo-server --dest-namespace echo-server-demo --dest-server https://47.97.XX.XX:6443期待される出力:
application 'echo-server-demo' created -
アプリケーションを宛先クラスターに同期します。
argocd app sync echo-server-demo期待される出力:
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-09-22T14:32:45+08:00 Service echo-server-demo echo-server-demo OutOfSync Missing 2022-09-22T14:32:45+08:00 apps Deployment echo-server-demo echo-server-demo OutOfSync Missing 2022-09-22T14:32:45+08:00 Service echo-server-demo echo-server-demo Synced Progressing 2022-09-22T14:32:45+08:00 Service echo-server-demo echo-server-demo Synced Progressing service/echo-server-demo created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-demo echo-server-demo OutOfSync Missing deployment.apps/echo-server-demo created 2022-09-22T14:32:45+08:00 apps Deployment echo-server-demo echo-server-demo Synced Progressing deployment.apps/echo-server-demo created Name: echo-server-demo Project: default Server: https://47.97.XX.XX:6443 Namespace: echo-server-demo URL: https://127.0.0.1:52742/applications/echo-server-demo Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/helm/echo-server SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (e5c2618) Health Status: Progressing Operation: Sync Sync Revision: e5c261880a4072cdbfa5173add2be426f7f3**** Phase: Succeeded Start: 2022-09-22 14:32:44 +0800 CST Finished: 2022-09-22 14:32:45 +0800 CST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service echo-server-demo echo-server-demo Synced Progressing service/echo-server-demo created apps Deployment echo-server-demo echo-server-demo Synced Progressing deployment.apps/echo-server-demo created -
アプリケーションが実行中であることを確認してください。
argocd app list期待される出力:
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET echo-server-demo https://47.97.XX.XX:6443 echo-server-demo default Synced Healthy <none> <none> https://github.com/AliyunContainerService/gitops-demo.git manifests/helm/echo-server[STATUS] が [Synced] で、[HEALTH] が [Healthy] の場合、アプリケーションはデプロイされています。
関連操作
GitOps の設定を維持するには、以下の操作を実行してください。
Argo CD ConfigMap の設定
-
[マルチクラスター GitOps] ページの [GitOps] 折りたたみセクションで [Argo CD ConfigMap] を見つけてください。
-
[Argo CD ConfigMap] の横にある [設定] をクリックします。
-
[Argo CD ConfigMap 設定] ページで、[設定項目の選択] ドロップダウンリストから設定項目を選択し、[設定の変更] コードエディターで編集します。再起動ポリシーについては、「共通の設定項目」をご参照ください。
Argo CD コンポーネントの再起動
-
[マルチクラスター GitOps] ページの [GitOps] 折りたたみセクションで [Argo CD コンポーネント] を見つけてください。
-
[Argo CD コンポーネント] の横にある [再起動] をクリックします。
-
[再起動するアプリケーションの選択] ドロップダウンリストからコンポーネント (例: argocd-server) を選択し、[OK] をクリックします。
GitOps の無効化
GitOps を無効にする前に、すべてのアプリケーションを削除してください。ACK One フリートインスタンスを削除する前に、GitOps を無効にしてください。
コンソールの使用:
-
ACK One コンソールにログインします。左側のナビゲーションウィンドウで、[フリート] > [マルチクラスターアプリケーション] を選択します。
-
[マルチクラスター GitOps] ページで、
アイコンをクリックし、フリートを選択します。 -
[GitOps の無効化] をクリックし、[OK] をクリックします。
Alibaba Cloud CLI の使用:
aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --ArgoCDEnabled false
次のステップ
-
Argo CD へのパブリックアクセスを有効にする — 追加のアクセス制御設定の構成
-
共通の設定項目 — ConfigMap 設定による Argo CD の動作のカスタマイズ
-
マルチクラスターフリートのクラウドリソースの課金 — GitOps リソースのコストの確認