ページの先頭行へ戻る
Interstage Application Server V12.2.0 Red Hat OpenShift上での利用手順書
FUJITSU Software

3.2.3 Red Hat OpenShift上でのJava EE 7アプリケーションの実行

Red Hat OpenShift上でのJava EE 7アプリケーションの実行の流れを以下に示します。

以下の手順を実施して、本製品に配備したJava EE 7アプリケーションをRed Hat OpenShift上で実行します。

注意

  • 本製品のJava EE 7のDockerイメージの実行はroot権限が必要です。root権限でDockerイメージを実行できるようにRed Hat OpenShiftのユーザ、プロジェクトを設定してください。詳細は以下を参照してください。

    Red Hat OpenShift Documentation  (https://docs.openshift.com/)
     OpenShift Container Platform
      Cluster Administration
       Managing Security Context Constraints
  • Podを再起動すると、Dockerコンテナが削除され、Dockerイメージから新たなDockerコンテナが生成されます。

    ユーザーアプリケーションが出力するログやシスログは永続ストレージを指定してください。詳細は以下を参照してください。

    Red Hat OpenShift Documentation  (https://docs.openshift.com/)
     OpenShift Container Platform
      Developer Guide
       Using Persistent Volumes

    なお、Red Hat OpenShiftでは本製品が出力するログ(例えば、サーバーログやJava VMログ)は永続ストレージを指定できません。

    そのため、livenessProbeの設定は無効にすることを推奨します。livenessProbeを設定すると、Interstageサービスがダウンした場合にPodが再起動します。livenessProbeの設定については、「B.1 Java EE 7」を参照してください。

  1. Red Hat OpenShiftからアクセス可能なリポジトリに、Dockerイメージを登録します。

    本手順は、Dockerイメージ作成環境で実行します。

    以下は、ローカルリポジトリ"docker-registry.aps.svc:5000"に、Dockerイメージを"docker-registry.aps.svc:5000/isje7app:1.0"として登録する例です。

    # docker tag isje7app:1.0 docker-registry.aps.svc:5000/isje7app:1.0
    # docker push docker-registry.aps.svc:5000/isje7app:1.0
  2. Red Hat OpenShiftにログインします。

  3. oc new-appコマンドに-oオプションを指定して、Java EE 7のコンテナをRed Hat OpenShift上で作成するための設定ファイルをJava EE 7アプリケーション配備済みDockerイメージから作成します。

    以下は、Java EE 7のコンテナをRed Hat OpenShift上で作成するための設定ファイルを作成する例です。

    # oc new-app --docker-image=docker-registry.aps.svc:5000/isje7app:1.0 --name isje7myapp -o yaml > isje7myapp.yaml

    上記例では、イメージ名"docker-registry.aps.svc:5000/isje7app:1.0"のDockerイメージからファイル名"isje7myapp.yaml"のyaml形式の設定ファイルを作成しています。

  4. 「手順3」で出力された設定ファイルを編集して、以下の設定を行います。

    • IPCパラメーターの設定

    • Java EE 7が動作するDockerコンテナを特権コンテナとして起動する設定

    • livenessProbeでJava EE 7を監視する設定

    • 永続ボリュームを利用する設定

    設定ファイルのテンプレートの編集内容については、「B.1 Java EE 7」を参照してください。

  5. 「手順4」で編集した設定ファイルを使ってコンテナを起動します。

    以下は、oc createコマンドを使用して、「手順4」で編集した設定ファイルからコンテナを起動する例です。

    # oc create -f isje7myapp.yaml

    上記例は、設定ファイルのファイル名が"isje7myapp.yaml"の場合の例です。

  6. Java EE 7アプリケーションにアクセスするURLを外部へ公開するためのrouteを作成します。

    システム要件に合わせて以下のいずれかを作成し、--hostnameオプションに指定したホスト名でサービスを公開します。

    • セキュリティ保護されていないroute

      oc exposeコマンドを使用します。

      以下は、Interstage HTTP Server 2.2のポート番号80をURL http://isje7myapp.example.comで公開するrouteを作成する例です。アプリケーションには、http://isje7myapp.example.com/<Webアプリケーション名>等でアクセスできるようになります。赤字の部分を適宜変更してください。

      # oc expose deploymentconfigs/isje7myapp --name=isje7myapp --port=80
      # oc expose svc/isje7myapp --hostname=isje7myapp.example.com
    • セキュリティ保護されたroute

      oc createコマンドを使用します。

      TLSでHTTP通信を暗号化する場合、routeの--hostnameオプションに指定したホスト名で証明書を作成します。

      以下は、Interstage HTTP Server 2.2のポート番号80をURL https://isje7myapp.example.comで公開するEdge Terminationのrouteを作成する例です。アプリケーションには、URL https://isje7myapp.example.com/<Webアプリケーション名>等でアクセスできるようになります。赤字の部分を適宜変更してください。

      # oc expose deploymentconfigs/isje7myapp --name=isje7myapp --port=80
      # oc create route edge --service=svc/isje7myapp --hostname=isje7myapp.example.com --key=myapp.key --cert=myapp.crt

    注意

    • シングル・サインオンの業務サーバ機能を利用する場合は、routeに設定するポート番号とホスト名に業務システムの公開URLを設定してください。

      業務システムの公開URLについては、Interstage 管理コンソールの[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム]の[一覧]タブで確認できます。

    • WebサーバとIJServerクラスタを別Podで運用し、IJServerクラスタで要求を受け付けるIPアドレスを制限する場合は、以下のように設定してください。なお、Webサーバ用のPodやIJServerクラスタ用のPodを再起動した場合は再設定が必要です。

      • Webサーバの連携設定で指定するIJServerクラスタのIPアドレスに、IJServerクラスタのPodのIPアドレスを設定する。

      • IJServerクラスタの「要求を受け付けるIPアドレス」に、WebサーバのPodのIPアドレスを設定する。

      Webサーバの連携設定については「Java EE 7 設計・構築・運用ガイド」の「WebサーバとIJServerクラスタを別のマシンで運用する場合」を参照してください。

      「要求を受け付けるIPアドレス」については「Java EE 7 設計・構築・運用ガイド」の「HTTPサービスの定義項目」を参照してください。

  7. 「手順6」で--hostnameオプションに指定したホスト名を名前解決できるようにします。

    以下は、Linuxサーバ環境でhostsファイルを修正してホスト名(isje7myapp.example.com)をIPアドレス(203.0.113.2)で名前解決するときの設定例です。

    # cat /etc/hosts
    203.0.113.2   isje7myapp.example.com