Argo CDを使用した継続的デプロイメントの例

Argo CDを使用したアプリケーションのデプロイおよびアンデプロイ

始める前に

ここの手順を使用して、Argo CDを有効化および構成します。

サンプル・アプリケーションをデプロイします

カスタム・ネームスペースにアプリケーションをデプロイするには、Gitリポジトリ・パスを指定するArgo CDアプリケーションを作成します。このパスは、Argo CDが指定されたネームスペースでアプリケーションを同期およびデプロイするために必要です。

ノート: ネームスペースを事前に作成してラベルを付けるか、アプリケーションのデプロイ時にネームスペースを自動作成できます。この例では、ネームスペースを自動作成します。

この例では、Hello-helidonアプリケーションのデプロイ方法に関する情報を示します。Hello-helidonアプリケーションおよびコンポーネントのYAMLファイルは、「Hello World Helidon」で入手できます。

  1. Argo CDコンソールにログインします。
  2. 「New App」をクリックします。
  3. アプリケーションの名前を指定します。
  4. 「Project Name」で、「default」を選択します。
  5. 「Sync Policy」オプションのAutomaticを選択します。
    デフォルトでは、Argo CDは指定されたGitリポジトリを3分ごとにチェックし、Kubernetesの更新をGitリポジトリと同期します
  6. 「Sync Options」セクションで、「Auto-Create Namespace」を選択します。
    ネームスペースを自動作成すると、アプリケーションはサービス・メッシュの外部にデプロイされます。
  7. 「Source」セクションで、次のように入力します:
  8. 「Destination」セクションで、次のようにします:
    • Cluster URL: アプリケーションのデプロイ先のクラスタを選択します。
    • Namespace: アプリケーションをデプロイするネームスペースを指定します。このサンプルの手順では、ネームスペースとしてhello-helidonを使用します。
  9. 「作成」をクリックします。
    これによりArgo CDアプリケーションが作成され、デプロイされたアプリケーションの図表が表示されます。

デプロイされたアプリケーションの確認

Hello World Helidonマイクロサービス・アプリケーションは、REST APIエンドポイント/configを実装し、起動されると、メッセージ{"message":"Hello World!"}を返します。

ノート: 次の手順では、OKEなどのKubernetes環境を使用していることを前提としています。その他の環境やデプロイメントでは、アドレス、ポートなどを取得するための代替メカニズムが必要になる場合があります。

次のステップに従い、エンドポイントをテストします

  1. アプリケーション用に生成されたホスト名を取得します。

    $ 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
    
  2. 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
    
  3. アプリケーションにアクセスします。

    • コマンドラインの使用

      $ 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.ioNO_PROXYリストに追加する必要がある場合があります。
    • 独自のDNS名の使用

      独自のDNS名をイングレス・ゲートウェイのEXTERNAL-IPアドレスにポイントします。

      • この場合、hello-helidonアプリケーションをデプロイする前に、hello-helidon-app.yamlファイルを編集してhostsセクション(yourhost.your.domainなど)に適切な値を使用する必要があります。
      • その後、ブラウザを使用してhttps://<yourhost.your.domain>/configでアプリケーションにアクセスできます。
  4. デプロイされたアプリケーションに関連付けられた様々なエンドポイントを使用して、ログやメトリックなどをさらに探索できます。ここの指示に従ってアクセスできます。

アプリケーションのアンデプロイ

  1. Argo CDコンソールにログインします。
  2. アンデプロイするアプリケーションを選択し、「Delete」をクリックします。
  3. アプリケーションの名前を入力し、「OK」をクリックします。
    これにより、ネームスペースを除き、特定のアプリケーションによって作成されたすべてのリソースが削除されます。