2.8. S2I デプロイメント


統合された Source-to-Image (S2I) ビルダーは、OpenShift でアプリケーションをデプロイする 1 つの方法です。S2I は、再現可能な Docker 形式のコンテナーイメージをビルドするためのツールです。詳細は、OpenShift の概念 を参照してください。

前提条件

  • ROSA クラスター

2.8.1. ログインコマンドを取得しています

手順

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

    rosa whoami
    Copy to Clipboard Toggle word wrap

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

  2. コマンドラインインターフェイス (CLI) にログインしていない場合は、OpenShift Cluster Manager で、右上の名前の横にあるドロップダウン矢印をクリックし、ログインコマンドのコピー を選択します。

  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 を追加します。

    この例では、OpenShift アプリケーションのデフォルト設定を上書きするために通常使用される HAProxy 設定ファイルをエミュレートします。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 リポジトリー内の マイクロサービス ディレクトリーに定義されたアプリケーションをビルドします。アプリ ラベルにより、ユーザーインターフェイス (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 Route として公開します。

    • 次のコマンドを実行して、含まれている 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