Argo CDを使用した継続的デプロイメントの例
始める前に
ここの手順を使用して、Argo CDを有効化および構成します。
サンプル・アプリケーションをデプロイします
カスタム・ネームスペースにアプリケーションをデプロイするには、Gitリポジトリ・パスを指定するArgo CDアプリケーションを作成します。このパスは、Argo CDが指定されたネームスペースでアプリケーションを同期およびデプロイするために必要です。
ノート: ネームスペースを事前に作成してラベルを付けるか、アプリケーションのデプロイ時にネームスペースを自動作成できます。この例では、ネームスペースを自動作成します。
この例では、Hello-helidon
アプリケーションのデプロイ方法に関する情報を示します。Hello-helidon
アプリケーションおよびコンポーネントのYAMLファイルは、「Hello World Helidon」で入手できます。
- Argo CDコンソールにログインします。
- 「New App」をクリックします。
- アプリケーションの名前を指定します。
- 「Project Name」で、「default」を選択します。
- 「Sync Policy」オプションの
Automatic
を選択します。
デフォルトでは、Argo CDは指定されたGitリポジトリを3分ごとにチェックし、Kubernetesの更新をGitリポジトリと同期します - 「Sync Options」セクションで、「Auto-Create Namespace」を選択します。
ネームスペースを自動作成すると、アプリケーションはサービス・メッシュの外部にデプロイされます。 - 「Source」セクションで、次のように入力します:
- Repository URL: https://github.com/verrazzano/verrazzano/
- Revision:
release-1.7
- Path: Kubernetesリソース定義がリストされるリポジトリ内のパス。例:
examples/helidon-config
- 「Destination」セクションで、次のようにします:
- Cluster URL: アプリケーションのデプロイ先のクラスタを選択します。
- Namespace: アプリケーションをデプロイするネームスペースを指定します。このサンプルの手順では、ネームスペースとして
hello-helidon
を使用します。
- 「作成」をクリックします。
これによりArgo CDアプリケーションが作成され、デプロイされたアプリケーションの図表が表示されます。
デプロイされたアプリケーションの確認
Hello World Helidonマイクロサービス・アプリケーションは、REST APIエンドポイント/config
を実装し、起動されると、メッセージ{"message":"Hello World!"}
を返します。
ノート: 次の手順では、OKEなどのKubernetes環境を使用していることを前提としています。その他の環境やデプロイメントでは、アドレス、ポートなどを取得するための代替メカニズムが必要になる場合があります。
次のステップに従い、エンドポイントをテストします
-
アプリケーション用に生成されたホスト名を取得します。
$ HOST=$(kubectl get gateways.networking.istio.io hello-helidon-helidon-config-appconf-gw \ -n hello-helidon \ -o jsonpath='{.spec.servers[0].hosts[0]}') $ echo $HOST # Sample output helidon-config-appconf.hello-helidon.11.22.33.44.nip.io
-
istio-ingressgateway
サービスのEXTERNAL_IP
アドレスを取得します。$ ADDRESS=$(kubectl get service \ -n istio-system istio-ingressgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}') $ echo $ADDRESS # Sample output 11.22.33.44
-
アプリケーションにアクセスします。
-
コマンドラインの使用
$ curl -sk \ -X GET \ https://${HOST}/config \ --resolve ${HOST}:443:${ADDRESS} # Expected response output {"message":"Hello World!"}
nip.io
を使用している場合は、--resolve
を含める必要はありません。 -
ブラウザによるローカル・テスト
一時的に、
/etc/hosts
ファイル(MacまたはLinuxの場合)またはc:\Windows\System32\Drivers\etc\hosts
ファイル(Windows 10の場合)を変更して、ホスト名をイングレス・ゲートウェイのEXTERNAL-IP
アドレスにマップするエントリを追加します。たとえば:11.22.33.44 hello-helidon.example.com
その後、ブラウザで
https://<host>/config
からアプリケーションにアクセスできます。nip.io
を使用している場合は、HOST
変数(https://${HOST}/config
など)を使用してブラウザでアプリケーションにアクセスできます。- プロキシを使用する場合は、
*.nip.io
をNO_PROXY
リストに追加する必要がある場合があります。
-
独自のDNS名の使用
独自のDNS名をイングレス・ゲートウェイの
EXTERNAL-IP
アドレスにポイントします。- この場合、
hello-helidon
アプリケーションをデプロイする前に、hello-helidon-app.yaml
ファイルを編集してhosts
セクション(yourhost.your.domain
など)に適切な値を使用する必要があります。 - その後、ブラウザを使用して
https://<yourhost.your.domain>/config
でアプリケーションにアクセスできます。
- この場合、
-
-
デプロイされたアプリケーションに関連付けられた様々なエンドポイントを使用して、ログやメトリックなどをさらに探索できます。ここの指示に従ってアクセスできます。
アプリケーションのアンデプロイ
- Argo CDコンソールにログインします。
- アンデプロイするアプリケーションを選択し、「Delete」をクリックします。
- アプリケーションの名前を入力し、「OK」をクリックします。
これにより、ネームスペースを除き、特定のアプリケーションによって作成されたすべてのリソースが削除されます。