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

Container Service for Kubernetes:ACK One GitOps を使用したアプリケーションのデプロイ

最終更新日:Mar 26, 2026

ACK One GitOps は ArgoCD をベースに構築されており、Git リポジトリを信頼できる唯一の情報源として使用して、宣言的にアプリケーションのデプロイメントを管理できます。クラスター間で YAML テンプレートを配布する必要はありません。このトピックでは、ArgoCD コンソールと ArgoCD コマンドラインインターフェイス (CLI) の両方を使用して、アプリケーションのデプロイ、更新、ロールバックを行う方法を説明します。

学習内容

  • Git リポジトリを ACK One GitOps に接続する

  • ArgoCD アプリケーションを作成し、特定のクラスターにデプロイする

  • kubectl amc コマンドを使用してデプロイメントを検証する

  • 新しいイメージタグを Git にプッシュしてアプリケーションを更新する

  • ArgoCD の履歴を使用して以前のバージョンにロールバックする

前提条件

開始する前に、以下の準備が整っていることを確認してください。

ArgoCD コンソールを使用したアプリケーションのデプロイ

手順1:Git リポジトリの追加とアプリケーションのデプロイ

1. ArgoCD コンソールにログインします。

ブラウザで ArgoCD サーバーのドメインを開きます。ドメイン名については、「GitOps システムへのログイン」をご参照ください。

ArgoCD のホームページで、[LOGIN VIA ALIYUN] をクリックします。

2. ソース Git リポジトリを追加します。

左側のナビゲーションウィンドウで、[設定] > [リポジトリ] を選択し、[+ リポジトリを接続] をクリックします。

リポジトリの詳細を入力し、[CONNECT] をクリックします。

添加Git repo.png

[CONNECTION STATUS] 列に Successful と表示されると、リポジトリは接続されています。

success.png

3. ArgoCD アプリケーションを作成します。

[Applications] ページで、[+ NEW APP] をクリックし、アプリケーションの詳細を入力します。ArgoCD はソース Git リポジトリから Helm チャートをプルし、指定されたクラスターのデフォルト名前空間にデプロイします。

添加应用.png

パネルの上部にある [CREATE] をクリックします。

[Applications] ページに echo-server-app アプリケーションが表示されます。

查看状态.png

4. アプリケーションをクラスターに同期します。

アプリケーションの下にある [SYNC] をクリックしてデプロイメントをトリガーします。

[Status]HealthySynced が表示されると、アプリケーションはターゲットクラスターで実行されています。アプリケーション名をクリックすると、すべての Kubernetes リソースのトポロジーとステータスが表示されます。

同步.png

手順2:デプロイメントの検証

フリートインスタンスの kubeconfig を使用して以下のコマンドを実行し、アプリケーションが実行中であることを確認します。

1. フリートインスタンスに関連付けられているクラスターをリストします。

kubectl amc get managedcluster

期待される出力:

Name         Alias             HubAccepted
cd****      ackpro-cluster2      true
ce****      ackpro-cluster1      true    // アプリケーションがデプロイされているクラスター。

出力には、フリートインスタンスに登録されているすべてのクラスターがリストされます。ce**** (ackpro-cluster1) は、アプリケーションがデプロイされた場所です。

2. ターゲットクラスターのリソースを確認します。

kubectl amc get all -n default -m ce****

-m フラグは、特定のマネージドクラスターをターゲットにします。

期待される出力:

Run on ManagedCluster ce**** (ackpro-cluster1)
NAME                               READY   STATUS    RESTARTS   AGE
pod/echo-server-5cf54bdbcb-jv58k   1/1     Running   0          59m

NAME                  TYPE           CLUSTER-IP        EXTERNAL-IP    PORT(S)          AGE
service/echo-server   LoadBalancer   192.XX.XX.XX      39.XX.XX.XX   8080:31769/TCP   59m        21d

NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/echo-server   1/1     1            1           59m

Pod は 1/1 Running と表示され、LoadBalancer サービスには外部 IP が割り当てられています。アプリケーションはトラフィックを受信する準備ができています。

3. アプリケーションのバージョンを確認します。

curl http://39.XX.XX.XX:8080/version

期待される出力:

"Hello Echo Server v1.0"

アプリケーションは v1.0 で実行されています。

手順3:アプリケーションの更新

1. イメージタグの変更を Git にプッシュします。

Git リポジトリで、Pod のイメージタグを v1.0 から v2.0 に変更します。

修改tag.png

Git リポジトリのタグが変更されたため、ArgoCD アプリケーションには OutOfSync と表示されます。

2. 差分を確認します。

[OutOfSync] アイコンをクリックして変更内容を確認します。

更新并同步.png查看区别.png

3. 更新を同期します。

[SYNC] をクリックします。同期が完了すると、Pod のイメージタグは v2.0 になります。

确认版本.png

4. 更新されたバージョンを確認します。

curl http://39.XX.XX.XX:8080/version

期待される出力:

"Hello Echo Server v2.0"

手順4:以前のバージョンへのロールバック

アプリケーションが v2.0 に更新された後も、ArgoCD はロールバックのために元の ReplicaSet を保持します。

1. 両方の ReplicaSet がクラスターに存在することを確認します。

kubectl amc get replicaset  -n default -m ce****

期待される出力:

Run on ManagedCluster ce**** (ackpro-cluster1)
NAME                     DESIRED   CURRENT   READY   AGE
echo-server-55664c4677   1         1         1       26m    // バージョンは v2.0 です。
echo-server-5cf54bdbcb   0         0         0       109m   // バージョンは v1.0 です。

2. v1.0 にロールバックします。

アプリケーションページで、[HISTORY AND ROLLBACK] をクリックして、すべての履歴バージョンを表示します。

回滚版本.png

v1.0 を選択し、[Rollback] をクリックします。

确认回滚.png

Pod のイメージタグは v1.0 に戻ります。クラスターの状態が Git リポジトリ (まだ v2.0) と異なるため、アプリケーションのステータスは OutOfSync に変わります。[SYNC] をクリックして同期タスクを開始します。

ArgoCD は、ソース Git リポジトリから情報を自動的に同期します。

ArgoCD CLI を使用したアプリケーションのデプロイ

手順1:ArgoCD サーバーへのログイン

1. ArgoCD サーバーのロードバランサー IP を取得します。

kubectl get svc -nargocd argocd-server -ojsonpath='{.status.loadBalancer.ingress[0].ip}'

2. admin パスワードを取得します。

kubectl -nargocd get secret argocd-initial-admin-secret -ojsonpath='{.data.password}' |base64 -d

3. ログインします。

argocd login <argocd server lb ip>
Username: admin
Password:
'admin:login' logged in successfully
Context '<argocd server lb ip>' updated

手順2: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

手順3:利用可能なクラスターの確認

argocd cluster list

期待される出力:

SERVER                          NAME                    VERSION  STATUS   MESSAGE                                                  PROJECT
https://10.XX.XX.XX:XX      ce****-ackpro-cluster1               Unknown  Cluster has no applications and is not being monitored.
https://10.XX.XX.XX:XX      cd****-ackpro-cluster2               Unknown  Cluster has no applications and is not being monitored.
https://kubernetes.default.svc  in-cluster                       Unknown  Cluster has no applications and is not being monitored.

ACK One は、新しく関連付けられたクラスターに関する情報を ArgoCD に自動的に同期するため、フリートインスタンスに追加されたクラスターはすべてここに表示されます。

手順4:アプリケーションの作成とデプロイ

1. アプリケーションを作成します。

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

期待される出力:

application 'echo-server' created

2. アプリケーションを同期して、Git から構成をプルし、ターゲットクラスターにデプロイします。

argocd app sync echo-server

その他の操作

次のステップ

リファレンス