ApplicationSetを使用すると、1つのオーケストレーションテンプレートを使用して1つ以上のアプリケーションを作成し、複数のクラスターにデプロイできます。 このトピックでは、ApplicationSetを使用して複数のアプリケーションを作成する方法について説明します。
前提条件
GitOpsシステムにログオンしています。 詳細については、「GitOpsシステムへのログイン」をご参照ください。
kubectlがインストールされ、使用するACK One Fleetインスタンスへのログインに使用されるkubeconfigファイルが取得されます。 kubeconfigファイルのデフォルトパスは ~/.kube/configです。
例
この例では、エコーサーバーアプリケーションがクラスター生産とクラスターステージングにデプロイされています。 次のコンテンツは、echo-serverアプリケーションのデプロイに使用されるGitリポジトリ内のマニフェストディレクトリの構造を示しています。
.
â ─ ─ Dockerfile
â ─ ─ go.mo d
â ─ ─ go.sum
â ─ ─ main.go
└ ─ ─ マニフェスト
└ ─ ─ ディレクトリ
â ─ ─ 生産
│ ├─ ─ deployment.yaml
│ õ ─ ─ service.yaml
└ ─ ─ ステージング
â ─ ─ deployment.yaml
└ ─ ─ service.yaml
Cluster Productionのecho-serverアプリケーションは、アプリケーションのバージョンとアプリケーションの公開方法の点で、Cluster Stagingのecho-serverアプリケーションとは異なります。 したがって、サブディレクトリの生産とステージングは、クラスター生産のエコーサーバーアプリケーションのオーケストレーションテンプレートとクラスター生産のエコーサーバーアプリケーションのオーケストレーションテンプレートを分離するために作成されます。
手順
次のコンテンツに基づいて、applicationset.yamlという名前のファイルを作成します。
ApplicationSetは、
production-echo-server
とstaging-echo-server
という名前の2つのアプリケーションを作成するために使用されます。production-echo-server
アプリケーションは、サブディレクトリmanifests/directory/productionのマニフェストファイルに基づいてデプロイされます。staging-echo-server
アプリケーションは、サブディレクトリmanifests/directory/stagingのマニフェストファイルに基づいてデプロイされます。apiVersion: argoproj.io/v1alpha 1 種類: ApplicationSet メタデータ: 名前: echo-server spec: 発電機: -リスト: 要素: -cluster: 本番 url: https:// 47.91.XX.XX:6443 -cluster: staging url: https:// 47.111.XX.XX:6443 template: metadata: 名前: '{{cluster}}-echo-server' 仕様: project: デフォルト ソース: repoURL: https://code.aliyun.com/shuwei.hsw/echo-server.git targetRevision: メイン パス: manifests /ディレクトリ /{{cluster}} 宛先: server: '{{url}}' 名前空間: multi-echo-server
次のコマンドを実行して、ApplicationSetをデプロイします。
kubectl -n argocd apply -f applicationset.yaml
次のコマンドを実行して、作成されたアプリケーションを照会します。
kubectl -n argocd get application
期待される出力:
名前同期ステータス健康ステータス production-echo-server OutOfSync Missing staging-echo-server OutOfSync Missing
次のコマンドを実行して、アプリケーションをクラスターに同期します。
argocdアプリの同期プロダクション-echo-server staging-echo-server
echo-serverアプリケーションへのアクセスをテストします。
次のコマンドを実行して、Cluster Productionのecho-serverアプリケーションにアクセスします。
curl XX.XX.XX.XX:8080 /バージョン# XX.XX.XXをエコーサーバーアプリケーションのIPアドレスに置き換えます。
期待される出力:
「ハローエコーサーバーv1.0」
次のコマンドを実行して、クラスターステージングでエコーサーバーアプリケーションにアクセスします。
curl XX.XX.XX.XX:8080 /バージョン# XX.XX.XXをエコーサーバーアプリケーションのIPアドレスに置き換えます。
期待される出力:
「ハローエコーサーバーv2.0」
関連ドキュメント
ApplicationSetsの使用方法の詳細については、「ApplicationSet」をご参照ください。