第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 環境のインストール時に、レジストリーの認証設定を完了する必要があります。
それ以外の方法として、レジストリー認証を独自のプロジェクトで設定し、イメージストリームをそのプロジェクトにインストールすることができます。
手順
- Red Hat OpenShift Container Platform が Red Hat レジストリーへのアクセス用のユーザー名とパスワードで設定されているかどうかを判別します。必須の設定に関する詳細は、「レジストリーの場所の設定」を参照してください。OpenShift Online サブスクリプションを使用している場合は、Red Hat レジストリーへのアクセス用の設定はすでに行われています。
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 で利用可能な状態であるため、追加の操作は必要ありません。コマンドのいずれかまたは両方の出力が空の場合や、OpenShift が Red Hat レジストリーへのアクセス用のユーザー名とパスワードで設定されていない場合には、以下の手順を実行してください。
-
oc
コマンドで OpenShift にログインしており、プロジェクトがアクティブであることを確認します。 - 「Registry Service Accounts for Shared Environments」に記載されている手順を実行します。Red Hat カスタマーポータルにログインし、このドキュメントにアクセスし、レジストリーサービスアカウントを作成する手順を実行する必要があります。
- OpenShift Secret タブを選択し、Download secret のリンクをクリックして、YAML シークレットファイルをダウンロードします。
-
ダウンロードしたファイルを確認して、
name:
エントリーに一覧表示されている名前をメモします。 以下のコマンドを実行します。
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:
のエントリーに記載されている名前に置き換えてください。-
Software Downloads ページから
rhdm-7.6.0-openshift-templates.zip
の製品配信可能ファイルをダウンロードし、rhdm76-image-streams.yaml
ファイルを展開します。 以下のコマンドを入力します。
$ oc apply -f rhdm76-image-streams.yaml
注記上記の手順を完了したら、イメージストリームをプロジェクトの namespace にインストールします。この場合、テンプレートをデプロイする際に
IMAGE_STREAM_NAMESPACE
パラメーターをこのプロジェクトの名前に設定する必要があります。
-
2.2. Decision Server のシークレットの作成
OpenShift は シークレット と呼ばれるオブジェクトを使用してパスワードやキーストアなどの機密情報を保持します。OpenShift のシークレットに関する詳細は、OpenShift ドキュメントの「シークレット」の章を参照してください。
Decision Server への HTTP アクセス用に SSL 証明書を作成し、これをシークレットとして OpenShift 環境に指定する必要があります。
手順
Decision Server の SSL 暗号化向けの秘密鍵と公開鍵で SSL キーストアを生成します。自己署名または購入した SSL 証明書でキーストアを作成する方法は、「SSL 暗号化キーおよび証明書」を参照してください。
注記実稼働環境で、想定されている Decision Server の URL と一致する、有効な署名済み証明書を生成します。
-
keystore.jks
という名前のファイルにキーストアを保存します。 -
証明書の名前をメモします。Red Hat Decision Manager 設定におけるこのデフォルト名は
jboss
です。 -
キーストアファイルのパスワードをメモします。Red Hat Decision Manager 設定におけるこのデフォルトの値は
mykeystorepass
です。 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 に同じ証明書およびキーストアを使用しないでください。
手順
Decision Server の SSL 暗号化向けの秘密鍵と公開鍵で SSL キーストアを生成します。自己署名または購入した SSL 証明書でキーストアを作成する方法は、「SSL 暗号化キーおよび証明書」を参照してください。
注記実稼働環境で、想定されている Business Central の URL と一致する、有効な署名済み証明書を生成します。
-
keystore.jks
という名前のファイルにキーストアを保存します。 -
証明書の名前をメモします。Red Hat Decision Manager 設定におけるこのデフォルト名は
jboss
です。 -
キーストアファイルのパスワードをメモします。Red Hat Decision Manager 設定におけるこのデフォルトの値は
mykeystorepass
です。 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 環境がインターネットに接続されている場合にはこの手順を実行する必要はありません。
前提条件
- 公開インターネットへの送信アクセスが設定されているコンピューターが利用可能であること。
手順
書き込み可能な Maven リリースリポジトリーを準備します。このリポジトリーは、認証なしに読み込みアクセスができるようにする必要があります。OpenShift 環境は、このリポジトリーへのアクセスが必要です。OpenShift 環境に、Nexus リポジトリーマネージャーをデプロイできます。OpenShift への Nexus の設定方法は、「Nexus の設定」を参照してください。このリポジトリーを別個のミラーリポジトリーとして使用します。
または、サービスにカスタムの外部リポジトリー (Nexus など) を使用する場合、同じリポジトリーをミラーリポジトリーとして使用できます。
公開インターネットに送信アクセスができるコンピューターで、以下の手順を実行します。
- 最新版の Offliner ツール をダウンロードします。
-
Red Hat カスタマーポータルの Software Downloads ページから利用可能な
rhdm-7.6.0-offliner.txt
の製品配信可能ファイルをダウンロードします。 以下のコマンドを入力して 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 ツールのバージョンに置き換えます。ダウンロードにはかなり時間がかかる可能性があります。- 一時ディレクトリーから作成した Maven ミラーリポジトリーにすべてのアーティファクトをアップロードします。アーティファクトのアップロードには、Maven Repository Provisioner ユーティリティーを使用できます。
Business Central 外でサービスを開発し、追加の依存関係がある場合には、ミラーリポジトリーにその依存関係を追加します。サービスを Maven プロジェクトとして作成している場合には、以下の手順を使用すると、これらの依存関係を自動的に準備できます。公開インターネットへの送信接続のあるコンピューターで、この手順を実行します。
-
ローカルの Maven キャッシュディレクトリー (
~/.m2/repository
) のバックアップを作成して、ディレクトリーを削除します。 -
mvn clean install
コマンドを使用してプロジェクトのソースをビルドします。 すべてのプロジェクトについて以下のコマンドを入力し、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
ファイルへの正しいパスに置き換えます。-
ローカルの Maven キャッシュディレクトリー (
~/.m2/repository
) から作成した Maven ミラーリポジトリーにすべてのアーティファクトをアップロードします。アーティファクトのアップロードには、Maven Repository Provisioner ユーティリティーを使用できます。
-
ローカルの Maven キャッシュディレクトリー (
2.5. GlusterFS 設定の変更
OpenShift 環境が GlusterFS を使用して永続ストレージボリュームを提供するかどうかを確認する必要があります。GlusterFS を使用している場合は、Business Central の最適なパフォーマンスを確保するために、ストレージクラスの設定を変更して GlusterFS ストレージをチューニングする必要があります。
手順
お使いの環境で 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
を一覧表示しないデフォルトストレージクラスが含まれる場合、または結果が空の場合は、変更する必要はありません。変更しない場合は、以下の残りの手順を省略します。デフォルトストレージクラスの設定を YAML ファイルに保存するには、以下のコマンドを実行します。
oc get storageclass <class-name> -o yaml >storage_config.yaml
<class-name>
はデフォルトのストレージクラス名に置き換えます。以下は、例になります。oc get storageclass gluster-container -o yaml >storage_config.yaml
storage_config.yaml
ファイルを編集します。以下のキーがある行を削除します。
-
creationTimestamp
-
resourceVersion
-
selfLink
-
uid
-
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
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
既存のデフォルトストレージクラスを削除するには、以下のコマンドを実行します。
oc delete storageclass <class-name>
<class-name>
はデフォルトのストレージクラス名に置き換えます。以下は、例になります。oc delete storageclass gluster-container
新しい設定を使用してストレージクラスを再作成するには、以下のコマンドを実行します。
oc create -f storage_config.yaml
2.6. NFS を使用した ReadWriteMany
アクセスモードの永続ボリュームのプロビジョニング
高可用性 Business Central をデプロイする場合には、ご使用の環境は ReadWriteMany
アクセスモードで永続ボリュームをプロビジョニングする必要があります。
高可用性オーサリング環境をデプロイする場合、パフォーマンスと信頼性を最大化するには、GlusterFS を使用して永続ボリュームをプロビジョニングします。「GlusterFS 設定の変更」 の説明に従って GlusterFS ストレージクラスを設定します。
お使いの設定で ReadWriteMany
アクセスモードの永続ボリュームのプロビジョニングが必要であるものの、環境がそのようなプロビジョニングに対応しない場合、NFS を使用してボリュームをプロビジョニングします。それ以外の場合は、この手順は省略します。
手順
NFS サーバーをデプロイし、NFS を使用して永続ボリュームをプロビジョニングします。NFS を使用して永続ボリュームをプロビジョニングする方法については、『クラスターの設定』の「NFS を使用した永続ストレージ」を参照してください。