このトピックでは、GitOps システムを使用してアプリケーションを作成、デプロイ、更新、ロールバックする方法について説明します。
前提条件
GitOps システムにログイン済みであること。
Git リポジトリを追加済みであること。
2つのクラスター (サービスプロバイダークラスターとサービスコンシューマークラスター) がフリートインスタンスに関連付けられています。 詳細については、「クラスターとフリートインスタンスの関連付け」をご参照ください。
アプリケーションの作成とデプロイ
このセクションでは、echo-server-demo サンプルアプリケーションを作成し、API サーバーアドレスが https://47.97.XX.XX:6443 である ACK クラスターにデプロイする方法を説明します。
ネットワークの問題で GitHub にアクセスできない場合は、https://github.com/AliyunContainerService/gitops-demo.git を https://code.aliyun.com/shuwei.hsw/gitops-demo.git に置き換えることができます。
Argo CD コンソール
Argo CD UI にログインします。 詳細については、「Argo CD UI を使用した Argo CD へのログイン」をご参照ください。
左側のナビゲーションペインで[アプリケーション]をクリックし、次に[+ 新規アプリ]をクリックします。
表示されるパネルで、以下のパラメーターを設定し [作成] をクリックします。
セクション
パラメーター
値
GENERAL
Application Name
echo-server-demoProject Name
デフォルト同期ポリシー
ドロップダウンリストから [自動] を選択します。Automatic の場合、Argo CD は 3 分ごとに Git リポジトリをスキャンし、変更をクラスターに同期します。[手動] の場合、SYNC をクリックして手動で同期をトリガーします。
SYNC OPTIONS
[名前空間の自動作成] を選択します
SOURCE
Repository URL
ドロップダウンリストから
https://github.com/AliyunContainerService/gitops-demo.gitを選択しますリビジョン
HEADPath
manifests/helm/echo-serverDESTINATION
Cluster URL/Cluster Name
ドロップダウンリストからターゲットクラスターを選択します
名前空間
echo-server-demoHELM
VALUES FILES
values.yamlアプリケーションの作成後、 [アプリケーション] ページでアプリケーションのステータスを確認します。 SYNC POLICY が [手動] に設定されている場合は、 [同期] をクリックしてアプリケーションをデプロイします。アプリケーションのステータスに ヘルシー と 同期済み の両方が表示されると、アプリケーションは正常にデプロイされます。

Argo CD CLI
次のコマンドを実行して、
echo-server-demoアプリケーションを作成します。argocd app create echo-server-demo --repo https://github.com/AliyunContainerService/gitops-demo.git --path manifests/directory/production --dest-namespace echo-server-demo --dest-server https://47.97.XX.XX:6443 --sync-policy none期待される出力:
application 'echo-server-demo' created次の表に、コマンドのパラメーターを説明します。
パラメーター
説明
repo
アプリケーションの Git リポジトリの URL。
path
リポジトリ内のアプリケーションマニフェストへのパス。
dest-server
ターゲットクラスターの API サーバーアドレス。
dest-namespace
ターゲットクラスター内の名前空間。
sync-policy
アプリケーションの同期ポリシー。デフォルト値は
noneです。有効な値はautoとnoneです。auto: Argo CD は、定期的に Git リポジトリの変更をチェックし、ターゲットクラスターに自動的にデプロイします。none:アプリケーションをターゲットクラスターにデプロイするには、手動で同期をトリガーする必要があります。
次のコマンドを実行して、
echo-server-demoアプリケーションをターゲットクラスターに同期およびデプロイします。argocd app sync echo-server-demo期待される出力:
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server OutOfSync Missing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing 2022-10-17T16:43:20+08:00 Service echo-server-demo echo-server Synced Progressing service/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server OutOfSync Missing deployment.apps/echo-server-demo created 2022-10-17T16:43:20+08:00 apps Deployment echo-server-demo echo-server 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:65384/applications/echo-server-demo Repo: https://github.com/AliyunContainerService/gitops-demo.git Target: Path: manifests/directory/production SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (02af62b) Health Status: Progressing Operation: Sync Sync Revision: 02af62bf21e76f53ebfcc282c45865d2308c**** Phase: Succeeded Start: 2022-10-17 16:43:19 +0800 CST Finished: 2022-10-17 16:43:20 +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
アプリケーション一覧
Argo CD コンソール
左側のナビゲーションペインで[アプリケーション]を選択すると、アプリケーション一覧が表示されます。
アプリケーション名をクリックして詳細ページを開くと、リソース トポロジと各 Kubernetes リソースのステータスが表示されます。

Argo CD CLI
次のコマンドを実行して、アプリケーション一覧を表示します。
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/directory/productionアプリケーションの更新
GitOps モデルでは、Git リポジトリが信頼できる唯一の情報源です。 アプリケーションへのすべての変更を Git リポジトリにコミットし、ターゲットクラスターに同期する必要があります。
変更を Git リポジトリにコミットします。
次のコマンドを実行して、アプリケーションの最新バージョンをターゲットクラスターに同期およびデプロイします。
argocd app sync echo-server-demo次のコマンドを実行して、アプリケーションにアクセスします。
curl XX.XX.XX.XX:8080/version # XX.XX.XX.XX をアプリケーションの IP アドレスに置き換えます。期待される出力:
"Hello Echo Server v2.0"
アプリケーションのロールバック
Argo CD コンソール
左側のナビゲーションペインで、[アプリケーション] を選択します。
echo-server-demoアプリケーションを見つけ、その名前をクリックします。アプリケーション詳細ページで、[履歴とロールバック] をクリックします。[履歴とロールバック] パネルで、ロールバックするバージョンを選択し、右上隅にある [ロールバック] をクリックします。
ロールバックが完了したら、アプリケーション詳細ページに戻り、アプリケーションのバージョンを確認します。
Argo CD CLI
次のコマンドを実行して、利用可能な履歴バージョンを表示します。
argocd app history echo-server-demo期待される出力:
ID DATE REVISION 0 2022-10-17 16:43:20 +0800 CST (02af62b) 1 2022-10-17 16:52:49 +0800 CST (56ae547)現在の
REVISIONは56ae547で、シリアル番号は 1 です。次のコマンドを実行して、アプリケーションを
REVISIONが02af62bである履歴バージョンにロールバックします。argocd app rollback echo-server-demo 0ロールバックが完了したら、アプリケーションに引き続きアクセスできることを確認します。
次のコマンドを実行して、アプリケーションにアクセスします。
curl XX.XX.XX.XX:8080/version # XX.XX.XX.XX をアプリケーションの IP アドレスに置き換えます。期待される出力:
"Hello Echo Server v1.0"