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

Container Service for Kubernetes:GitOps の概要

最終更新日:Nov 09, 2025

ACK One フリートインスタンスで GitOps を使用して、Git リポジトリを信頼できる唯一の情報源 (single source of truth) としてアプリケーションを管理できます。これにより、YAML マニフェストディレクトリ、Helm チャート、Kustomize などのさまざまなオーケストレーションメソッドを使用するアプリケーションのバージョン管理、マルチクラスター配信、継続的デプロイメントを実装できます。GitOps は Argo CD のコミュニティバージョンと完全に互換性があり、高可用性のコントロールプレーンを提供します。このトピックでは、ACK One フリートインスタンスで GitOps を使用して複数のクラスターにアプリケーションを配信する方法について説明し、開始するのに役立ちます。

前提条件

課金ルール

GitOps を有効にすると、ACK One はデフォルトで次のリソースを作成します。

  • Argo CD の API および UI アクセスエンドポイントを公開するために、SLB インスタンスが作成されます。

  • Argo CD サービスを実行するために、2 vCPU と 4 GB のメモリを持つ従量課金 ECI インスタンスが作成されます。

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

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

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

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

ACK One フリートインスタンスを作成すると、GitOps 機能はデフォルトで有効になります。 VPC を介して GitOps コンソールにアクセスできます。 これを行うには、オンプレミスネットワークを VPC に接続する必要があります。

インターネット経由で GitOps コンソールにアクセスして、アプリケーションの送信や表示などの操作を実行するには、次の手順に従ってパブリックアクセスを有効にできます。

重要

パブリックアクセスを有効にすると、セキュリティリスクが生じます。 したがって、パブリックアクセスを有効にするときは、アクセスコントロールリスト (ACL) を設定する必要があります。

コンソールでパブリックアクセスを有効にする

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

  2. [マルチクラスター GitOps] ページで、左上隅にあるフリート名の横にある Dingtalk_20231226104633.jpg アイコンをクリックし、ドロップダウンリストから宛先フリートを選択します。

  3. 新しいフリートでは、GitOps はデフォルトで有効になっています。 フリートで GitOps が有効になっていない場合は、[GitOps を有効にする] をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。

    フリートで GitOps が有効になっている場合、[GitOps コンソール] ボタンが [マルチクラスター GitOps] ページに表示されます。

  4. [マルチクラスター GitOps] ページで、[パブリックアクセス] の横にある [有効化] をクリックします。 表示される [パブリックアクセスを有効にする] ダイアログボックスで、ホワイトリストに追加する IP アドレスまたは CIDR ブロックを入力し、[OK] をクリックします。

  5. フリートが更新された後、ページの右上隅にある [GitOps コンソール] をクリックして、インターネット経由で GitOps コンソールにアクセスできます。

クラウドアシスタント CLI を使用してパブリックアクセスを有効にする

  1. 最新バージョンのクラウドアシスタント CLI を使用していることを確認してください。 次に、次のコマンドを実行して GitOps とパブリックアクセスを有効にします。

    • <your_clusterid> をフリートインスタンスの ID に置き換えます。

    • AccessControlList の値を、ホワイトリストに追加する CIDR ブロックに置き換えます。 CIDR ブロックの取得方法の詳細については、「GitOps へのパブリックアクセスを有効にする」をご参照ください。

    aliyun adcp UpdateHubClusterFeature --ClusterId <your_clusterid> --PublicAccessEnabled true --AccessControlList "[\"10.100.XX.XX/24\"]" --ArgoCDEnabled true 
  2. オプション: RAM ユーザーの AccessKey ペアを使用する場合は、RAM ユーザーに AliyunAdcpFullAccess 権限を付与する必要があります。 詳細については、「RAM ユーザーへの権限付与」をご参照ください。

ステップ 2: GitOps コンソールでアプリケーションを作成し、宛先クラスターに配信する

コンソールでアプリケーションをデプロイする

  1. [マルチクラスター GitOps] ページで、[GitOps コンソール] をクリックして Argo CD UI のログインページに移動します。 [LOG IN VIA ALIYUN] をクリックして、Alibaba Cloud アカウントでシングルサインオン (SSO) を使用して Argo CD UI にログインします。

  2. リポジトリに接続する。

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

    2. 表示されるパネルで、次のパラメーターを設定し、[CONNECT] をクリックします。

      エリア

      パラメーター

      接続方法の選択

      -

      VIA HTTP/HTTPS

      HTTP/HTTPS を使用してリポジトリに接続

      タイプ

      git

      プロジェクト

      default

      リポジトリ URL

      https://github.com/AliyunContainerService/gitops-demo.git

      サーバー検証をスキップ

      このチェックボックスを選択します。

      image.png

      リポジトリが接続されると、Git リポジトリの [CONNECTION STATUS][Successful] に変わります。

      image.png

  3. アプリケーションを作成する。

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

    2. 表示されるパネルで、次のパラメーターを設定し、[CREATE] をクリックします。

      エリア

      パラメーター

      全般

      アプリケーション名

      echo-server-demo

      プロジェクト名

      default

      同期ポリシー

      ドロップダウンリストから [Automatic] を選択します。

      次のオプションが利用可能です:

      • [Manual]: Git リポジトリで変更が行われた場合、変更を宛先クラスターに手動で同期する必要があります。

      • [Automatic]: Argo CD サーバーは 3 分ごとに Git リポジトリの変更を自動的に検出し、変更を宛先クラスターにデプロイします。

      同期オプション

      [AUTO-CREATE NAMESPACE] を選択します。

      ソース

      リポジトリ URL

      ドロップダウンリストから既存の Git リポジトリを選択します。 この例では、https://github.com/AliyunContainerService/gitops-demo.git が選択されています。

      リビジョン

      HEAD

      パス

      manifests/helm/echo-server

      宛先

      クラスター URL/クラスター名

      ドロップダウンリストから宛先クラスターを選択します。

      名前空間

      echo-server-demo

      HELM

      VALUES ファイル

      values.yaml

    3. アプリケーションが作成された後、[Applications] ページで echo-server-demo アプリケーションのステータスを表示できます。

      [SYNC POLICY][Manual] に設定した場合、[SYNC] をクリックしてアプリケーションを宛先クラスターに同期する必要があります。 アプリケーションの [Status][Healthy] および [Synced] になると、アプリケーションは同期されます。

      image.png

    4. echo-server-demo アプリケーションの名前をクリックして、関連する Kubernetes リソースのトポロジーやステータスなどの詳細を表示します。

      image.png

Argo CD CLI を使用してアプリケーションをデプロイする

  1. Argo CD にログインしてアクセスする。

    1. ArgoCD v2.8.7 に移動して、Argo CD CLI V2.8.7 をダウンロードしてインストールします。

    2. ACK One フリートインスタンスで次のコマンドを実行して、Argo CD システムの初期パスワードを取得します。

      kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    3. ACK One フリートインスタンスで次のコマンドを実行して、ポートフォワーディングを使用して Argo CD にログインします。 デフォルトのユーザー名は 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. ACK One フリートインスタンスで次のコマンドを実行して、デフォルトの 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
  2. リポジトリに接続する。

    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. 次のコマンドを実行して、追加された Git リポジトリのリストを表示します。

      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

      期待される出力: Argo CD クラスターのリストには、ACK One フリートインスタンスに関連付けられているすべてのクラスターが含まれます。

      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.
  3. アプリケーションを作成する。

    1. 次のコマンドを実行して、アプリケーションを作成します。

      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

関連操作

GitOps でアプリケーションをデプロイした後、次の操作を実行して、フリートと 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 のアプリケーションを削除してから GitOps を無効にすることができます。

説明

ACK One フリートインスタンスを削除する前に、GitOps を無効にする必要があります。

コンソールからのシャットダウン

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

  2. [マルチクラスター GitOps] ページで、左上隅にあるフリート名の横にある Dingtalk_20231226104633.jpg アイコンをクリックし、ドロップダウンリストから宛先フリートを選択します。

  3. [マルチクラスター GitOps] ページの右上隅にある [GitOps を無効にする] をクリックします。 表示されるメッセージで、[OK] をクリックします。

クラウドアシスタント CLI を使用したシャットダウン

最新バージョンのクラウドアシスタント CLI を使用していることを確認してください。 次に、次のコマンドを実行して GitOps を無効にします。

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