第2章 OpenShift 環境への Red Hat Decision Manager のデプロイの準備

OpenShift 環境に Red Hat Decision Manager をデプロイする前に、準備タスクをいくつか完了する必要があります。追加イメージ (たとえば、デシジョンサービスの新しいバージョン、または他のデシジョンサービス) をデプロイする場合は、このタスクを繰り返す必要はありません。

2.1. イメージストリームとイメージレジストリーが利用可能であることの確認

Red Hat Decision Manager コンポーネントを Red Hat OpenShift Container Platform にデプロイするには、OpenShift が Red Hat レジストリーから適切なイメージをダウンロードできることを確認する必要があります。これらのイメージをダウンロードするために、OpenShift ではイメージの場所情報が含まれる イメージストリーム が必要になります。また、OpenShift は、お使いのサービスアカウントのユーザー名とパスワードを使用して Red Hat レジストリーで認証できるように設定する必要があります。

OpenShift 環境のバージョンによっては、必要なイメージストリームが含まれている場合があります。イメージストリームが提供されているかどうかを確認する必要があります。デフォルトでイメージストリームが OpenShift に含まれている場合には、OpenShift インフラストラクチャーがレジストリー認証サーバー用に設定されているのであれば、使用できます。管理者は、OpenShift 環境のインストール時に、レジストリーの認証設定を完了する必要があります。

それ以外の方法として、レジストリー認証を独自のプロジェクトで設定し、イメージストリームをそのプロジェクトにインストールすることができます。

手順

  1. Red Hat OpenShift Container Platform が Red Hat レジストリーへのアクセス用のユーザー名とパスワードで設定されているかどうかを判別します。必須の設定に関する詳細は、「レジストリーの場所の設定」を参照してください。OpenShift Online サブスクリプションを使用している場合は、Red Hat レジストリーへのアクセス用の設定はすでに行われています。
  2. Red Hat OpenShift Container Platform が Red Hat レジストリーへのアクセス用のユーザー名とパスワードで設定されている場合は、以下のコマンドを実行します。

    $ oc get imagestreamtag -n openshift | grep rhdm76-decisioncentral-openshift
    $ oc get imagestreamtag -n openshift | grep rhdm76-kieserver-openshift

    両方のコマンドの出力が空でない場合、必要なイメージストリームは openshift namespace で利用可能な状態であるため、追加の操作は必要ありません。

  3. コマンドのいずれかまたは両方の出力が空の場合や、OpenShift が Red Hat レジストリーへのアクセス用のユーザー名とパスワードで設定されていない場合には、以下の手順を実行してください。

    1. oc コマンドで OpenShift にログインしており、プロジェクトがアクティブであることを確認します。
    2. Registry Service Accounts for Shared Environments」に記載されている手順を実行します。Red Hat カスタマーポータルにログインし、このドキュメントにアクセスし、レジストリーサービスアカウントを作成する手順を実行する必要があります。
    3. OpenShift Secret タブを選択し、Download secret のリンクをクリックして、YAML シークレットファイルをダウンロードします。
    4. ダウンロードしたファイルを確認して、name: エントリーに一覧表示されている名前をメモします。
    5. 以下のコマンドを実行します。

      oc create -f <file_name>.yaml
      oc secrets link default <secret_name> --for=pull
      oc secrets link builder <secret_name> --for=pull

      <file_name> はダウンロードしたファイルの名前に、<secret_name> はファイルの name: のエントリーに記載されている名前に置き換えてください。

    6. Software Downloads ページから rhdm-7.6.0-openshift-templates.zip の製品配信可能ファイルをダウンロードし、rhdm76-image-streams.yaml ファイルを展開します。
    7. 以下のコマンドを入力します。

      $ oc apply -f rhdm76-image-streams.yaml
      注記

      上記の手順を完了したら、イメージストリームをプロジェクトの namespace にインストールします。この場合、テンプレートをデプロイする際に IMAGE_STREAM_NAMESPACE パラメーターをこのプロジェクトの名前に設定する必要があります。

2.2. Decision Server のシークレットの作成

OpenShift は シークレット と呼ばれるオブジェクトを使用してパスワードやキーストアなどの機密情報を保持します。OpenShift のシークレットに関する詳細は、OpenShift ドキュメントの「シークレット」の章を参照してください。

Decision Server への HTTP アクセス用に SSL 証明書を作成し、これをシークレットとして OpenShift 環境に指定する必要があります。

手順

  1. Decision Server の SSL 暗号化向けの秘密鍵と公開鍵で SSL キーストアを生成します。自己署名または購入した SSL 証明書でキーストアを作成する方法は、「SSL 暗号化キーおよび証明書」を参照してください。

    注記

    実稼働環境で、想定されている Decision Server の URL と一致する、有効な署名済み証明書を生成します。

  2. keystore.jks という名前のファイルにキーストアを保存します。
  3. 証明書の名前をメモします。Red Hat Decision Manager 設定におけるこのデフォルト名は jboss です。
  4. キーストアファイルのパスワードをメモします。Red Hat Decision Manager 設定におけるこのデフォルトの値は mykeystorepass です。
  5. oc コマンドを使用して、新しいキーストアファイルからシークレット kieserver-app-secret を生成します。

    $ oc create secret generic kieserver-app-secret --from-file=keystore.jks

2.3. Business Central へのシークレットの作成

Business Central への HTTP アクセス用に SSL 証明書を作成し、これをシークレットとして OpenShift 環境に指定する必要があります。

Business Central と Decision Server に同じ証明書およびキーストアを使用しないでください。

手順

  1. Decision Server の SSL 暗号化向けの秘密鍵と公開鍵で SSL キーストアを生成します。自己署名または購入した SSL 証明書でキーストアを作成する方法は、「SSL 暗号化キーおよび証明書」を参照してください。

    注記

    実稼働環境で、想定されている Business Central の URL と一致する、有効な署名済み証明書を生成します。

  2. keystore.jks という名前のファイルにキーストアを保存します。
  3. 証明書の名前をメモします。Red Hat Decision Manager 設定におけるこのデフォルト名は jboss です。
  4. キーストアファイルのパスワードをメモします。Red Hat Decision Manager 設定におけるこのデフォルトの値は mykeystorepass です。
  5. oc コマンドを使用して、新しいキーストアファイルから decisioncentral-app-secret という名前のシークレットを生成します。

    $ oc create secret generic decisioncentral-app-secret --from-file=keystore.jks

2.4. オフラインで使用する Maven ミラーリポジトリーの準備

Red Hat OpenShift Container Platform 環境に公開インターネットへの送信アクセスが設定されていない場合には、必要なアーティファクトすべてのミラーが含まれる Maven リポジトリーを用意して、このリポジトリーを使用できるようにする必要があります。

注記

Red Hat OpenShift Container Platform 環境がインターネットに接続されている場合にはこの手順を実行する必要はありません。

前提条件

  • 公開インターネットへの送信アクセスが設定されているコンピューターが利用可能であること。

手順

  1. 書き込み可能な Maven リリースリポジトリーを準備します。このリポジトリーは、認証なしに読み込みアクセスができるようにする必要があります。OpenShift 環境は、このリポジトリーへのアクセスが必要です。OpenShift 環境に、Nexus リポジトリーマネージャーをデプロイできます。OpenShift への Nexus の設定方法は、「Nexus の設定」を参照してください。このリポジトリーを別個のミラーリポジトリーとして使用します。

    または、サービスにカスタムの外部リポジトリー (Nexus など) を使用する場合、同じリポジトリーをミラーリポジトリーとして使用できます。

  2. 公開インターネットに送信アクセスができるコンピューターで、以下の手順を実行します。

    1. 最新版の Offliner ツール をダウンロードします。
    2. Red Hat カスタマーポータルの Software Downloads ページから利用可能な rhdm-7.6.0-offliner.txt の製品配信可能ファイルをダウンロードします。
    3. 以下のコマンドを入力して Offliner ツールを使用し、必要なアーティファクトをダウンロードします。

      java -jar offliner-<version>.jar -r https://maven.repository.redhat.com/ga/ -r https://repo1.maven.org/maven2/ -d /home/user/temp rhdm-7.6.0-offliner.txt

      /home/user/temp は空の一時ディレクトリーに、<version> はダウンロードした Offliner ツールのバージョンに置き換えます。ダウンロードにはかなり時間がかかる可能性があります。

    4. 一時ディレクトリーから作成した Maven ミラーリポジトリーにすべてのアーティファクトをアップロードします。アーティファクトのアップロードには、Maven Repository Provisioner ユーティリティーを使用できます。
  3. Business Central 外でサービスを開発し、追加の依存関係がある場合には、ミラーリポジトリーにその依存関係を追加します。サービスを Maven プロジェクトとして作成している場合には、以下の手順を使用すると、これらの依存関係を自動的に準備できます。公開インターネットへの送信接続のあるコンピューターで、この手順を実行します。

    1. ローカルの Maven キャッシュディレクトリー (~/.m2/repository) のバックアップを作成して、ディレクトリーを削除します。
    2. mvn clean install コマンドを使用してプロジェクトのソースをビルドします。
    3. すべてのプロジェクトについて以下のコマンドを入力し、Maven を使用してプロジェクトで生成したすべてのアーティファクトのランタイムの依存関係をすべてダウンロードするようにします。

      mvn -e -DskipTests dependency:go-offline -f /path/to/project/pom.xml --batch-mode -Djava.net.preferIPv4Stack=true

      /path/to/project/pom.xml は、プロジェクトの pom.xml ファイルへの正しいパスに置き換えます。

    4. ローカルの Maven キャッシュディレクトリー (~/.m2/repository) から作成した Maven ミラーリポジトリーにすべてのアーティファクトをアップロードします。アーティファクトのアップロードには、Maven Repository Provisioner ユーティリティーを使用できます。

2.5. GlusterFS 設定の変更

OpenShift 環境が GlusterFS を使用して永続ストレージボリュームを提供するかどうかを確認する必要があります。GlusterFS を使用している場合は、Business Central の最適なパフォーマンスを確保するために、ストレージクラスの設定を変更して GlusterFS ストレージをチューニングする必要があります。

手順

  1. お使いの環境で GlusterFS が使用されているかどうかを確認するには、以下のコマンドを実行します。

    oc get storageclass

    結果で、(default) マーカーが、glusterfs を一覧表示するストレージクラスにあるかどうかを確認します。たとえば、以下の出力では、デフォルトのストレージクラスは gluster-container であり、glusterfs を一覧表示します。

    NAME              PROVISIONER                       AGE
    gluster-block     gluster.org/glusterblock          8d
    gluster-container (default) kubernetes.io/glusterfs 8d

    結果に glusterfs を一覧表示しないデフォルトストレージクラスが含まれる場合、または結果が空の場合は、変更する必要はありません。変更しない場合は、以下の残りの手順を省略します。

  2. デフォルトストレージクラスの設定を YAML ファイルに保存するには、以下のコマンドを実行します。

    oc get storageclass <class-name> -o yaml >storage_config.yaml

    <class-name> はデフォルトのストレージクラス名に置き換えます。以下は、例になります。

    oc get storageclass gluster-container -o yaml >storage_config.yaml
  3. storage_config.yaml ファイルを編集します。

    1. 以下のキーがある行を削除します。

      • creationTimestamp
      • resourceVersion
      • selfLink
      • uid
    2. Business Central を、高可用性設定なしの、単一の Pod としてのみ使用する予定の場合は、volumeoptions キーが含まれる行に、以下のオプションを追加します。

      features.cache-invalidation on
      performance.nl-cache on

      以下は例になります。

      volumeoptions: client.ssl off, server.ssl off, features.cache-invalidation on, performance.nl-cache on

    3. Business Central を高可用性設定で使用する予定の場合は、volumeoptions キーが含まれる行に、以下のオプションを追加します。

      features.cache-invalidation on
      nfs.trusted-write on
      nfs.trusted-sync on
      performance.nl-cache on
      performance.stat-prefetch off
      performance.read-ahead off
      performance.write-behind off
      performance.readdir-ahead off
      performance.io-cache off
      performance.quick-read off
      performance.open-behind off
      locks.mandatory-locking off
      performance.strict-o-direct on

      以下は例になります。

      volumeoptions: client.ssl off, server.ssl off, features.cache-invalidation on, nfs.trusted-write on, nfs.trusted-sync on, performance.nl-cache on, performance.stat-prefetch off, performance.read-ahead off, performance.write-behind off, performance.readdir-ahead off, performance.io-cache off, performance.quick-read off, performance.open-behind off, locks.mandatory-locking off, performance.strict-o-direct on

  4. 既存のデフォルトストレージクラスを削除するには、以下のコマンドを実行します。

    oc delete storageclass <class-name>

    <class-name> はデフォルトのストレージクラス名に置き換えます。以下は、例になります。

    oc delete storageclass gluster-container
  5. 新しい設定を使用してストレージクラスを再作成するには、以下のコマンドを実行します。

    oc create -f storage_config.yaml

2.6. NFS を使用した ReadWriteMany アクセスモードの永続ボリュームのプロビジョニング

高可用性 Business Central をデプロイする場合には、ご使用の環境は ReadWriteMany アクセスモードで永続ボリュームをプロビジョニングする必要があります。

注記

高可用性オーサリング環境をデプロイする場合、パフォーマンスと信頼性を最大化するには、GlusterFS を使用して永続ボリュームをプロビジョニングします。「GlusterFS 設定の変更」 の説明に従って GlusterFS ストレージクラスを設定します。

お使いの設定で ReadWriteMany アクセスモードの永続ボリュームのプロビジョニングが必要であるものの、環境がそのようなプロビジョニングに対応しない場合、NFS を使用してボリュームをプロビジョニングします。それ以外の場合は、この手順は省略します。

手順

NFS サーバーをデプロイし、NFS を使用して永続ボリュームをプロビジョニングします。NFS を使用して永続ボリュームをプロビジョニングする方法については、『クラスターの設定』の「NFS を使用した永続ストレージ」を参照してください。