Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


2.4.5 Orchestratorコンテナイメージの作成

Orchestratorコンテナイメージの作成方法について説明します。

〈この項の構成〉

(1) Containerfileの作成

5.3.3 Orchestratorコンテナイメージ」に記載されている要件を満たすように、OrchestratorコンテナイメージをビルドするためのContainerfileを作成してください。

Containerfileの記述例を次に示します。

■通常版・uCosminexus Application Runtime with Java for Spring Boot導入ありの場合

FROM myregistry.example.com/myproject/ucars:V.R.S     …1
COPY --chown=1001:0 --chmod=0440 ./orchestrator-V.R.S.jar /deployments/     …2
CMD /opt/hitachi/ucars/bin/starter.sh java ${HMPPCTO_JAVA_OPTIONS} -jar /deployments/orchestrator-V.R.S.jar     …3

記述例の番号は、説明の番号と対応しています。

<説明>

  1. コンテナベースイメージとして「2.4.3 uCosminexus Application Runtime with Java for Spring Bootコンテナベースイメージの作成(通常版限定)」で作成した「uCosminexus Application Runtime with Java for Spring Bootコンテナベースイメージ」を指定します。この例では、「myregistry.example.com/myproject/jdk:V.R.S」を指定しています。

  2. 「ユーザのOrchestratorアプリケーションのJARファイル」を配置し、パーミッションにコンテナ実行ユーザとグループそれぞれの読み取り権限を付与します。この例では、「ユーザのOrchestratorアプリケーションのJARファイル」の名前を「orchestrator-V.R.S.jar」としています。

  3. コマンドを「uCosminexus Application Runtime with Java for Spring Bootのプロセスモニタ起動スクリプト(starter.sh)」とし、引数に「javaコマンド」、「環境変数HMPPCTO_JAVA_OPTIONSの値」、「ユーザのOrchestratorアプリケーションのJARファイル」を指定します。

注※

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

■通常版・uCosminexus Application Runtime with Java for Spring Boot導入なし、トライアル版の場合

FROM myregistry.example.com/myproject/jdk:V.R.S     …1
COPY --chown=1001:0 --chmod=0440 ./orchestrator-V.R.S.jar /deployments/     …2
CMD java ${HMPPCTO_JAVA_OPTIONS} -jar /deployments/orchestrator-V.R.S.jar     …3

記述例の番号は、説明の番号と対応しています。

<説明>

  1. コンテナベースイメージとして「2.4.4 JDKコンテナベースイメージの作成」で作成した「JDKコンテナベースイメージ」を指定します。この例では、「myregistry.example.com/myproject/jdk:V.R.S」を指定しています。

  2. 「ユーザのOrchestratorアプリケーションのJARファイル」を配置し、パーミッションにコンテナ実行ユーザとグループそれぞれの読み取り権限を付与します。この例では、「ユーザのOrchestratorアプリケーションのJARファイル」の名前を「orchestrator-V.R.S.jar」としています。

  3. コマンドを「javaコマンド」とし、引数に「環境変数HMPPCTO_JAVA_OPTIONSの値」、「ユーザのOrchestratorアプリケーションのJARファイル」を指定します。

注※

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

ヒント

Red Hat OpenShift Container Platformで実行する場合のファイルのパーミッション設定

Red Hat OpenShift Container Platformには、SCC(Security Context Constraints)と呼ばれる、Podのパーミッションを制御する機能があります。このSCCのデフォルトの設定である「restricted」では、PodのKubernetesマニフェストでrunAsUserフィールドによるコンテナ起動ユーザが未設定の場合、コンテナイメージビルド時に設定したユーザ・グループを使用しないで、一定範囲内のランダムなUID(非root)とGID「0」(root)でコンテナを実行します。

このため、Red Hat OpenShift Container PlatformのSCCのrestricted設定で動作可能なコンテナイメージを作成する際は、配置するファイルのグループに「0」(root)を設定し、パーミッションにはオーナーの権限に加えてグループの権限も付与することを推奨します。

(2) Containerfileと資材の配置

次の表に示すとおり、Containerfileと資材をコンテナイメージビルド環境に配置してください。

表2‒10 Containerfileと資材の配置構成

ファイル/ディレクトリ構成

作成・提供元

備考

<コンテナイメージビルド作業ディレクトリ>/

ユーザ

Containerfile

ユーザ

<ユーザのOrchestratorアプリケーションのJARファイル>

ユーザ

(凡例)−:該当しません。

(3) コンテナイメージのビルド

Containerfileを使用して、コンテナイメージをビルドします。

Orchestratorコンテナイメージのビルドのコマンドを次に示します。

cd <コンテナイメージビルド作業ディレクトリ>/
docker△build△-f△./Containerfile△-t△<コンテナレジストリ>/[<namespace>/]<Orchestratorコンテナイメージのユーザ任意のイメージ名>:<ユーザ任意のタグ名>△.

(凡例)△:半角スペース1文字

<実行例>

cd build/
docker build -f ./Containerfile -t myregistry.example.com/myproject/orchestrator:V.R.S .

この例では、Orchestratorコンテナイメージのイメージ名・タグ名を「orchestrator:V.R.S」としています。

注※

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

(4) コンテナイメージの登録

ビルドしたOrchestratorコンテナイメージを、Kubernetesクラスタで使用するコンテナレジストリにdocker pushコマンドなどで登録してください。

インターネット接続のない閉塞環境の場合は、ローカルのリポジトリ・レジストリなどを使用したり、コンテナイメージビルド環境でエクスポートしたコンテナイメージをKubernetesクラスタの各ワーカーノードにインポートしたりするなどの方法で対応してください。