2.8. S2I デプロイメント


統合された Source-to-Image (S2I) ビルダーは、OpenShift でアプリケーションをデプロイする方法の 1 つです。S2I は、再現可能な Docker 形式のコンテナーイメージをビルドするためのツールです。詳細は、OpenShift Container Platform 一般用語集 を参照してください。このプロセスを開始する前に、Red Hat OpenShift Service on AWS クラスターをデプロイしておく必要があります。

2.8.1. ログインコマンドの取得

手順

  1. 次のコマンドを実行して、ROSA コマンドラインインターフェイス (CLI) (rosa) にログインしていることを確認します。

    rosa whoami
    Copy to Clipboard Toggle word wrap

    コマンドラインインターフェイスにログインしている場合は、「新しいプロジェクトの作成」に進んでください。コマンドラインインターフェイスにログインしていない場合は、この手順を続行します。

  2. ROSA CLI 経由でログインしていない場合は、OpenShift Cluster Manager で、右上の名前の横にあるドロップダウン矢印をクリックし、Copy Login Command を選択します。

  3. 新しいタブが開きます。ユーザー名とパスワードを入力し、認証方法を選択します。
  4. Display Token をクリックします。
  5. "Log in with this token" の下のコマンドをコピーします。
  6. コピーしたコマンドをターミナルで実行して CLI にログインします。

    入力の例

    $ oc login --token=RYhFlXXXXXXXXXXXX --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443
    Copy to Clipboard Toggle word wrap

    出力例

    Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided.
    
    You don't have any projects. You can try to create a new project, by running
    
    oc new-project <project name>
    Copy to Clipboard Toggle word wrap

2.8.2. 新しいプロジェクトの作成

  • 次のコマンドを実行して、CLI から新しいプロジェクトを作成します。

    $ oc new-project ostoy-s2i
    Copy to Clipboard Toggle word wrap

2.8.3. OSToy リポジトリーのフォーク

ソースコードの変更に基づいて自動ビルドをトリガーするには、GitHub Webhook を設定する必要があります。この Webhook により、GitHub リポジトリーにコードをプッシュしたときに S2I ビルドをトリガーします。Webhook を設定するには、まず リポジトリー をフォークする必要があります。

重要

このガイドで以下に示す URL の <UserName> は、自分の GitHub ユーザー名に置き換えてください。

2.8.4. S2i を使用してクラスターに OSToy をデプロイする

手順

  1. OpenShift にシークレットを追加します。

    この例では、.env ファイルをエミュレートします。ファイルは OpenShift 環境内に直接かつ簡単に移動できます。シークレット内でファイル名を変更することも可能です。

    • 次のコマンドを実行します。<UserName> は、GitHub ユーザー名に置き換えます。

      $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/secret.yaml
      Copy to Clipboard Toggle word wrap
  2. OpenShift に ConfigMap を追加します。

    この例では、HAProxy 設定ファイルをエミュレートします。これは、通常 OpenShift アプリケーションのデフォルト設定をオーバーライドするために使用されます。ファイルの名前は ConfigMap で変更できます。

    • 次のコマンドを実行します。<UserName> は、GitHub ユーザー名に置き換えます。

      $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/configmap.yaml
      Copy to Clipboard Toggle word wrap
  3. マイクロサービスをデプロイします。

    UI アプリケーションからサービスの環境変数を使用できるように、マイクロサービスをデプロイする必要があります。

    --context-dir は、Git リポジトリー内の microservice ディレクトリーで定義されたアプリケーションをビルドします。app ラベルにより、ユーザーインターフェイス (UI) アプリケーションとマイクロサービスの両方が OpenShift UI で確実にグループ化されます。

    • 次のコマンドを実行してマイクロサービスを作成します。<UserName> は、GitHub ユーザー名に置き換えます。

      $ oc new-app https://github.com/<UserName>/ostoy \
          --context-dir=microservice \
          --name=ostoy-microservice \
          --labels=app=ostoy
      Copy to Clipboard Toggle word wrap

      出力例

      --> Creating resources with label app=ostoy ...
          imagestream.image.openshift.io "ostoy-microservice" created
          buildconfig.build.openshift.io "ostoy-microservice" created
          deployment.apps "ostoy-microservice" created
          service "ostoy-microservice" created
      --> Success
          Build scheduled, use 'oc logs -f buildconfig/ostoy-microservice' to track its progress.
          Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
           'oc expose service/ostoy-microservice'
          Run 'oc status' to view your app.
      Copy to Clipboard Toggle word wrap

  4. マイクロサービスのステータスを確認します。

    • 次のコマンドを実行して、マイクロサービスが作成され、正しく実行されていることを確認します。

      $ oc status
      Copy to Clipboard Toggle word wrap

      出力例

      In project ostoy-s2i on server https://api.myrosacluster.g14t.p1.openshiftapps.com:6443
      
      svc/ostoy-microservice - 172.30.47.74:8080
        dc/ostoy-microservice deploys istag/ostoy-microservice:latest <-
          bc/ostoy-microservice source builds https://github.com/UserName/ostoy on openshift/nodejs:14-ubi8
          deployment #1 deployed 34 seconds ago - 1 pod
      Copy to Clipboard Toggle word wrap

      マイクロサービスが正常にデプロイされたことが表示されるまで待ちます。Web UI からこれを確認することもできます。

  5. フロントエンド UI をデプロイします。

    このアプリケーションは、外部設定を定義するために、いくつかの環境変数に依存しています。

    • 次のコマンドを実行して、シークレットと ConfigMap をアタッチし、PersistentVolume を作成します。

      $ oc new-app https://github.com/<UserName>/ostoy \
          --env=MICROSERVICE_NAME=OSTOY_MICROSERVICE
      Copy to Clipboard Toggle word wrap

      出力例

      --> Creating resources ...
          imagestream.image.openshift.io "ostoy" created
          buildconfig.build.openshift.io "ostoy" created
          deployment.apps "ostoy" created
          service "ostoy" created
      --> Success
          Build scheduled, use 'oc logs -f buildconfig/ostoy' to track its progress.
          Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
           'oc expose service/ostoy'
          Run 'oc status' to view your app.
      Copy to Clipboard Toggle word wrap

  6. 次のコマンドを実行してデプロイメントを更新します。

    $ oc patch deployment ostoy --type=json -p \
        '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "remove", "path": "/spec/strategy/rollingUpdate"}]'
    Copy to Clipboard Toggle word wrap
  7. liveness プローブを設定します。

    アプリケーションに問題がある場合に Pod が再起動するように、liveness プローブを作成します。

    • 以下のコマンドを実行します。

      $ oc set probe deployment ostoy --liveness --get-url=http://:8080/health
      Copy to Clipboard Toggle word wrap
  8. シークレット、ConfigMap、永続ボリュームをデプロイメントにアタッチします。

    1. 次のコマンドを実行してシークレットをアタッチします。

      $ oc set volume deployment ostoy --add \
          --secret-name=ostoy-secret \
          --mount-path=/var/secret
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して ConfigMap をアタッチします。

      $ oc set volume deployment ostoy --add \
          --configmap-name=ostoy-config \
          -m /var/config
      Copy to Clipboard Toggle word wrap
    3. 次のコマンドを実行して、永続ボリュームを作成してアタッチします。

      $ oc set volume deployment ostoy --add \
          --type=pvc \
          --claim-size=1G \
          -m /var/demo_files
      Copy to Clipboard Toggle word wrap
  9. UI アプリケーションを OpenShift ルートとして公開します。

    • 次のコマンドを実行して、同梱の TLS ワイルドカード証明書を使用する HTTPS アプリケーションとしてアプリケーションをデプロイします。

      $ oc create route edge --service=ostoy --insecure-policy=Redirect
      Copy to Clipboard Toggle word wrap
  10. 次の方法でアプリケーションに移動します。

    • 次のコマンドを実行して、OSToy アプリケーションで Web ブラウザーを開きます。

      $ python -m webbrowser "$(oc get route ostoy -o template --template='https://{{.spec.host}}')"
      Copy to Clipboard Toggle word wrap
    • 次のコマンドを実行してアプリケーションのルートを取得し、そのルートをコピーしてブラウザーに貼り付けます。

      $ oc get route
      Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat