検索

5.8. Argo CD を使用した Spring Boot アプリケーションのデプロイ

download PDF

Argo CD を使用すると、Argo CD ダッシュボードまたは oc ツールを使用して、アプリケーションを OpenShift クラスターにデプロイできます。

前提条件

  • Red Hat OpenShift GitOps がクラスターにインストールされている。
  • Argo CD インスタンスにログインしている。

5.8.1. Argo CD ダッシュボードを使用したアプリケーションの作成

Argo CD は、アプリケーションを作成できるダッシュボードを提供します。

このサンプルワークフローでは cluster ディレクトリーの内容を cluster-configs アプリケーションに対して再帰的に同期するために Argo CD を設定するプロセスについて説明します。ディレクトリーは Web コンソールの red hat applications menu icon メニューで Red Hat Developer Blog - Kubernetes へのリンクを追加する OpenShift Container Platform Web コンソールクラスター設定を定義してクラスターの namespace spring-petclinic を定義します。

手順

  1. Argo CD ダッシュボードで、New App をクリックして新規の Argo CD アプリケーションを追加します。
  2. このワークフローでは、以下の設定で cluster-configs アプリケーションを作成します。

    アプリケーション名
    cluster-configs
    プロジェクト
    default
    同期ポリシー
    Manual
    リポジトリー URL
    https://github.com/redhat-developer/openshift-gitops-getting-started
    リビジョン
    HEAD
    パス
    cluster
    宛先
    https://kubernetes.default.svc
    Namespace
    spring-petclinic
    ディレクトリーの再帰処理
    checked
  3. このワークフローでは、以下の設定で spring-petclinic アプリケーションを作成します。

    アプリケーション名
    spring-petclinic
    プロジェクト
    default
    同期ポリシー
    Automatic
    リポジトリー URL
    https://github.com/redhat-developer/openshift-gitops-getting-started
    リビジョン
    HEAD
    パス
    app
    宛先
    https://kubernetes.default.svc
    Namespace
    spring-petclinic
  4. Create をクリックしてアプリケーションを作成します。
  5. Web コンソールの Administrator パースペクティブで、左側のメニューにある Administration Namespaces に移動します。
  6. namespace を検索、選択してから Label フィールドに argocd.argoproj.io/managed-by=openshift-gitops を入力し、openshift-gitops namespace にある Argo CD インスタンスが namespace を管理できるようにします。

5.8.2. oc ツールを使用したアプリケーションの作成

oc ツールを使用して、ターミナルで Argo CD アプリケーションを作成できます。

手順

  1. サンプルアプリケーション をダウンロードします。

    $ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
  2. アプリケーションを作成します。

    $ oc create -f openshift-gitops-getting-started/argo/app.yaml
    $ oc create -f openshift-gitops-getting-started/argo/app.yaml
  3. oc get コマンドを実行して、作成されたアプリケーションを確認します。

    $ oc get application -n openshift-gitops
  4. アプリケーションがデプロイされている namespace にラベルを追加し、openshift-gitops namespace の Argo CD インスタンスが管理できるようにします。

    $ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
    $ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops

5.8.3. Argo CD の自己修復動作の確認

Argo CD は、デプロイされたアプリケーションの状態を常に監視し、Git の指定されたマニフェストとクラスターのライブの変更の違いを検出し、それらを自動的に修正します。この動作は自己修復として言及されます。

Argo CD で自己修復動作をテストし、確認することができます。

前提条件

  • サンプル app-spring-petclinic アプリケーションがデプロイされ、設定されている。

手順

  1. Argo CD ダッシュボードで、アプリケーションに Synced ステータスがあることを確認します。
  2. Argo CD ダッシュボードの app-spring-petclinic タイルをクリックし、クラスターにデプロイされたアプリケーションのリソースを表示します。
  3. OpenShift Container Platform Web コンソールで、Developer パースペクティブに移動します。
  4. Spring PetClinic デプロイメントを変更し、Git リポジトリーの app/ ディレクトリーに変更をコミットします。Argo CD は変更をクラスターに自動的にデプロイします。

    1. OpenShift GitOps 開始のリポジトリー をフォークします。
    2. deployment.yaml ファイルで failureThreshold の値を 5 に変更します。
    3. デプロイメントクラスターで、以下のコマンドを実行し、failureThreshold フィールドの値を確認します。

      $ oc edit deployment spring-petclinic -n spring-petclinic
  5. OpenShift Container Platform Web コンソールでアプリケーションを監視している間に、クラスターでデプロイメントを変更し、これを 2 つの Pod にスケールアップして自己修復動作をテストします。

    1. 以下のコマンドを実行してデプロイメントを変更します。

      $ oc scale deployment spring-petclinic --replicas 2  -n spring-petclinic
    2. OpenShift Container Platform Web コンソールでは、デプロイメントは 2 つの Pod にスケールアップし、すぐに再び 1 つの Pod にスケールダウンすることに注意してください。Argo CD は Git リポジトリーとの差異を検知し、OpenShift Container Platform クラスターでアプリケーションを自動的に修復しました。
  6. Argo CD ダッシュボードで、app-spring-petclinic タイル APP DETAILS EVENTS をクリックします。EVENTS タブには、以下のイベントが表示されます。Argo CD がクラスターのデプロイメントリソースが同期されていないことを検知し、Git リポジトリーを再同期してこれを修正します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.