すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:GitOps のクイックスタート

最終更新日:Mar 26, 2026

ACK One の GitOps を使用すると、Git リポジトリを信頼できる唯一の情報源 (Single Source of Truth) として、複数クラスター間のアプリケーション配信を管理できます。YAML マニフェストディレクトリ、Helm チャート、Kustomize をサポートしており、高可用性のコントロールプレーンを備えたコミュニティ版 Argo CD と完全な互換性があります。

このガイドを読み終えると、以下のことができるようになります。

  • Argo CD コンソールへのパブリックアクセスを有効にする

  • Git リポジトリを Argo CD に接続する

  • 送信先クラスターにアプリケーションをデプロイする

前提条件

開始する前に、以下を確認してください。

課金

GitOps を有効にすると、以下の課金対象リソースが作成されます。

  • Argo CD API および UI エンドポイントを公開するための SLB インスタンス

  • Argo CD サービスを実行するための 2 vCPU と 4 GB メモリを備えた従量課金の ECI インスタンス

料金の詳細については、「複数クラスターフリートのクラウドリソースの課金」をご参照ください。

サポートされるリージョン

この機能は、ACK One のフリート管理機能が有効になっているすべてのリージョンで利用できます。詳細については、「複数クラスターフリートとワークフロークラスターをサポートするリージョン」をご参照ください。

ステップ 1: GitOps コンソールへのパブリックアクセスを有効にする

ACK One フリートインスタンスを作成すると、GitOps はデフォルトで有効になります。デフォルトでは、Argo CD コンソールは Virtual Private Cloud (VPC) 内からのみアクセス可能です。インターネット経由でブラウザからアプリケーションを管理するには、パブリックアクセスを有効にします。

重要

パブリックアクセスを有効にすると、セキュリティリスクが生じます。必ずアクセスコントロールリスト (ACL) を設定して、信頼できる IP アドレスまたは CIDR ブロックにアクセスを制限してください。

コンソールを使用する

  1. ACK One コンソールにログインします。左側のナビゲーションウィンドウで、[フリート] > [複数クラスターアプリケーション] を選択します。

  2. [複数クラスター GitOps] ページで、フリート名の横にある Dingtalk_20231226104633.jpg アイコンをクリックし、ドロップダウンリストからご利用のフリートを選択します。

  3. GitOps が有効になっていない場合は、[GitOps の有効化] をクリックし、ダイアログボックスで [OK] をクリックします。GitOps がすでに有効になっている場合は、ページに [GitOps コンソール] ボタンが表示されます。

  4. [パブリックアクセス] の横にある [有効化] をクリックします。[パブリックアクセスの有効化] ダイアログボックスで、ホワイトリストに追加する IP アドレスまたは CIDR ブロックを入力し、[OK] をクリックします。

  5. フリートが更新された後、右上隅の [GitOps コンソール] をクリックして、ブラウザで Argo CD コンソールを開きます。

Cloud Assistant 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: 送信先クラスターにアプリケーションをデプロイする

このステップでは、gitops-demo サンプルリポジトリを使用して、Git リポジトリを接続し、アプリケーションをデプロイする手順を説明します。Argo CD UI と Argo CD CLI の 2 つの方法が利用できます。

Argo CD UI を使用したデプロイ

Argo CD へのログイン

[複数クラスター GitOps] ページで、[GitOps コンソール] をクリックします。Argo CD のサインインページで、[LOG IN VIA ALIYUN] をクリックして、Alibaba Cloud アカウントを使用したシングルサインオン (SSO) でサインインします。

リポジトリの接続

  1. 左側のナビゲーションウィンドウで [Settings] をクリックし、[Repositories] > [+ Connect Repo] を選択します。

  2. 以下のパラメーターを設定し、[CONNECT] をクリックします。接続が成功すると、[CONNECTION STATUS][Successful] に変わります。

    エリアパラメーター
    接続方法の選択VIA HTTP/HTTPS
    CONNECT REPO USING HTTP/HTTPSTypegit
    Projectdefault
    Repository URLhttps://github.com/AliyunContainerService/gitops-demo.git
    Skip server verificationこのチェックボックスを選択します

    image.png

    image.png

アプリケーションの作成

  1. 左側のナビゲーションウィンドウで [Applications] を選択し、[+ NEW APP] をクリックします。

  2. 以下のパラメーターを設定し、[CREATE] をクリックします。

    エリアパラメーター
    一般設定アプリケーション名echo-server-demo
    プロジェクト名デフォルト
    同期ポリシー自動 をドロップダウンリストから選択します。自動 を選択すると、Argo CD は Git リポジトリを 3 分ごとにチェックし、変更を自動的にデプロイします。手動 を選択した場合は、SYNC をクリックして同期を手動でトリガーします。
    同期オプション名前空間の自動作成
    ソースリポジトリ URLhttps://github.com/AliyunContainerService/gitops-demo.git をドロップダウンリストから選択します。
    リビジョンHEAD
    パスmanifests/helm/echo-server
    送信先クラスター URL送信先クラスターをドロップダウンリストから選択します。
    名前空間echo-server-demo
    HELMVALUES ファイルvalues.yaml
  3. [Applications] ページで、echo-server-demo アプリケーションの Status が Healthy および Synced と表示されていることを確認します。[SYNC POLICY][Manual] に設定した場合は、[SYNC] をクリックして初回デプロイメントをトリガーします。

    image.png

  4. アプリケーション名をクリックして、その Kubernetes リソースのトポロジーとステータスを表示します。

    image.png

Argo CD CLI を使用したデプロイ

Argo CD へのログイン

  1. Argo CD CLI v2.8.7 をダウンロードしてインストールします。

  2. フリートインスタンスから初期 admin パスワードを取得します。

    kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
  3. ポートフォワーディングを使用してログインします。デフォルトのユーザー名は admin です。

    export ARGOCD_OPTS='--port-forward-namespace argocd --port-forward'
    
    argocd login
    Username: admin
    Password:

    期待される出力:

    'admin:login' logged in successfully
    Context 'port-forward' updated
  4. デフォルトの 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

リポジトリの接続

  1. Git リポジトリを追加します。

    argocd repo add https://github.com/AliyunContainerService/gitops-demo.git --name echo-server

    期待される出力:

    Repository 'https://github.com/AliyunContainerService/gitops-demo.git' added
  2. リポジトリが追加されたことを確認します。

    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
  3. 利用可能なクラスターをリスト表示します。出力には、フリートインスタンスに関連付けられているすべてのクラスターが含まれます。

    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 をメモしておきます。

アプリケーションの作成と同期

  1. アプリケーションを作成します。https://47.97.XX.XX:6443 を送信先クラスターのサーバー URL に置き換えます。

    argocd app create echo-server --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/helm --dest-namespace echo-server-cli --dest-server https://47.97.XX.XX:6443

    期待される出力:

    application 'echo-server' created
  2. アプリケーションを送信先クラスターに同期します。

    argocd app sync echo-server

    期待される出力:

    TIMESTAMP                  GROUP        KIND   NAMESPACE                       NAME    STATUS    HEALTH        HOOK  MESSAGE
    2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server  OutOfSync  Missing
    2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server  OutOfSync  Missing
    2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server    Synced  Progressing
    2022-09-22T14:32:45+08:00            Service  echo-server-cli           echo-server    Synced   Progressing              service/echo-server created
    2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server  OutOfSync  Missing                  deployment.apps/echo-server created
    2022-09-22T14:32:45+08:00   apps  Deployment  echo-server-cli           echo-server    Synced  Progressing              deployment.apps/echo-server created
    
    Name:               echo-server
    Project:            default
    Server:             https://47.97.XX.XX:6443
    Namespace:          echo-server-cli
    URL:                https://127.0.0.1:52742/applications/echo-server
    Repo:               https://github.com/AliyunContainerService/gitops-demo.git
    Target:
    Path:               manifests/helm
    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-cli  echo-server  Synced  Progressing        service/echo-server created
    apps   Deployment  echo-server-cli  echo-server  Synced  Progressing        deployment.apps/echo-server created
  3. アプリケーションが実行中であることを確認します。

    argocd app list

    期待される出力:

    NAME             CLUSTER                     NAMESPACE        PROJECT  STATUS  HEALTH   SYNCPOLICY  CONDITIONS  REPO                                                     PATH              TARGET
    echo-server      https://47.97.XX.XX:6443  echo-server-cli  default  Synced  Healthy  <none>      <none>      https://github.com/AliyunContainerService/gitops-demo.git  manifests/helm

    STATUSSyncedHEALTHHealthy になると、アプリケーションは正常にデプロイされています。

その他の操作

アプリケーションをデプロイした後、これらの操作を使用して GitOps の設定を維持します。

Argo CD ConfigMap の設定

  1. [複数クラスター GitOps] ページで、[GitOps] の折りたたみセクションにある [Argo CD ConfigMap] を見つけます。

  2. [Argo CD ConfigMap] の横にある [設定] をクリックします。

  3. [Argo CD ConfigMap 設定] ページで、[設定項目を選択] ドロップダウンリストから設定項目を選択し、[設定の変更] コードエディタで編集します。一般的な設定項目とその再起動ポリシーについては、「一般的な設定項目」をご参照ください。

Argo CD コンポーネントの再起動

  1. [複数クラスター GitOps] ページで、[GitOps] の折りたたみセクションにある [Argo CD コンポーネント] を見つけます。

  2. Argo CD コンポーネント の横にある [再起動] をクリックします。

  3. ダイアログボックスで、[再起動するアプリケーションを選択] ドロップダウンリストから再起動するコンポーネント (例: argocd-server) を選択し、[OK] をクリックします。

GitOps の無効化

GitOps を無効にする前に、GitOps 内のすべてのアプリケーションを削除してください。また、ACK One フリートインスタンスを削除する前に GitOps を無効にしてください。

コンソールを使用する場合:

  1. ACK One コンソールにログインします。左側のナビゲーションウィンドウで、[フリート] > [複数クラスターアプリケーション] を選択します。

  2. [複数クラスター GitOps] ページで、Dingtalk_20231226104633.jpg アイコンをクリックし、ご利用のフリートを選択します。

  3. 右上隅の [GitOps の無効化] をクリックし、[OK] をクリックします。

Cloud Assistant CLI を使用する場合:

aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --ArgoCDEnabled false

次のステップ