補助イメージは、ポッドにModel in Imageモデル・ファイル、アプリケーション・アーカイブ・ファイルおよびWebLogic Deploy Toolingインストールを含めるための最適なアプローチとして推奨されます。 この機能により、domain.spec.image
で指定されたイメージにこれらのファイルを指定する必要がなくなります。
かわりに、次のようにします。
domain.spec.image
は、WebLogicインストールおよびJavaインストールのみを含める必要があるベース・イメージを直接参照します。Model In Imageドメインにおける補助イメージの利点は次のとおりです:
補助イメージは、内部的にKubernetes emptyDir
ボリュームおよびKubernetes init
コンテナを使用して、追加のイメージからファイルを共有します。
kubectl explain domain.spec.configuration.model.auxiliaryImages
コマンドを実行します。
ドメイン・リソースschemaのmodel.auxiliaryImages
セクションを参照してください。
オペレータ・バージョン4.0から、ドメイン・リソースconfiguration.model.auxiliaryImages
配列に1つ以上の補助イメージを構成できます。 各配列エントリは、補助イメージの名前であるimage
を定義する必要があります。 オプションで、imagePullPolicy
を設定できます。image
が:latest
およびIfNotPresent
で終了する場合は、デフォルトでAlways
に設定されます。それ以外の場合は、。 補助イメージのプルにイメージ・プル・シークレットが必要な場合は、domain.spec.imagePullSecrets
を使用してシークレットを参照する必要があります。
また、オプションで、WebLogic Deploy Toolingモデルの「ソースのロケーション」と、sourceModelHome
およびsourceWDTInstallHome
フィールド(次の「セクション」を参照)を使用して、補助イメージにWebLogic Deploy Toolingソフトウェアがインストールされているディレクトリ(WDTホームと呼ばれる)を構成できます。
オプションの属性configuration.model.auxiliaryImages[].sourceModelHome
およびconfiguration.model.auxiliaryImages[].sourceWdtInstallHome
を使用して、補助イメージのWebLogic Deploy ToolingモデルおよびWDTホームのデフォルト以外のロケーションを指定します。 sourceModelHome
およびsourceWdtInstallHome
に許可される値:
/auxiliary/models
および/auxiliary/weblogic-deploy
です。None
- イメージに、それぞれWDTモデルまたはWDTホームがないことを示します。sourceModelHome
またはsourceWDTInstallHome
をNone
に設定した場合、またはソース属性の設定が解除され、デフォルトのロケーションにファイルがない場合、オペレータはソース・ディレクトリを無視します。 それ以外の場合は、ソース・ディレクトリ属性を特定の値に設定し、指定したディレクトリにファイルが補助イメージ内にない場合、ドメイン・デプロイメントは失敗します。
sourceModelHome
およびsourceWDTInstallHome
ディレクトリのファイルは、すべてのポッドのWebLogic Serverコンテナの/aux/models
および/aux/weblogic-deploy
ディレクトリでそれぞれ使用可能になります。
ソースのロケーションの例については、「構成例2」を参照してください。
モデル・ファイルを含む複数の補助イメージをそれぞれのconfiguration.model.auxiliaryImages[].sourceModelHome
ディレクトリに指定すると、モデル・ファイルがマージされます。 このオペレータは、複数の補助イメージのモデル・ファイルを、model.auxiliaryImages
の下に表示されるイメージと同じ順序でマージします。 マージ内の後のイメージのファイルは、以前のイメージの同じ名前のファイルを上書きします。
複数の補助イメージを指定する場合は、configuration.model.auxiliaryImages[].sourceWDTInstallHome
を使用して、1つのイメージのみがWDTホームを提供するようにしてください。
複数の補助イメージ間で複数のWDTホームを指定した場合、ドメイン・デプロイメントは失敗します。 sourceWDTInstallHome
をNone
に設定するか、指定した補助イメージの1つを除いて、/auxiliary/weblogic-deploy
にファイルがないことを確認します。
複数の補助イメージの構成例については、「構成例3」を参照してください。
補助イメージを使用している場合は、通常、domain.spec.configuration.models.modelHome
およびdomain.spec.configuration.models.wdtInstallHome
を設定する必要はありません。 補助イメージ(「ソースのロケーション」を参照)に指定するモデルおよびWDTインストールは、すべてのWebLogic Serverポッドで、/aux/models
および/aux/weblogic-deploy
ディレクトリに常に配置されます。 補助image(s)が構成されている場合、オペレータは、modelHome
およびwdtInstallHome
のデフォルトを一致するように自動的に変更します。
modelHome
およびwdtInstallHome
をデフォルト以外の値に設定すると、ドメインは、その補助イメージのWDTモデル・ファイルおよびWDTホームを無視します。
次の構成例は、前述の各セクションを示しています。
この例では、補助image(s)の必須イメージ・パラメータを指定します。他のすべてのフィールドはデフォルト値です。
spec:
configuration:
model:
auxiliaryImages:
- image: model-in-image:v1
この例は、例1と同じですが、WebLogic Deploy ToolingモデルとWDTホームのソースのロケーションが指定されています。
spec:
configuration:
model:
auxiliaryImages:
- image: model-in-image:v1
sourceModelHome: /foo/models
sourceWDTInstallHome: /bar/weblogic-deploy
この例は例1と同じですが、複数の補助イメージを構成し、2番目のイメージのsourceWDTInstallHome
をNone
に設定します。 この場合、2番目のイメージnew-model-in-image:v1
からのWebLogic Deploy Toolingインストールのソースのロケーションは無視されます。
spec:
configuration:
model:
auxiliaryImages:
- image: model-in-image:v1
- image: new-model-in-image:v1
sourceWDTInstallHome: None
「Model in Imageサンプル」は、補助イメージを使用してドメインのWDTモデル・ファイル、アプリケーション・アーカイブZIPファイルおよびWDTインストールを小さい個別のコンテナ・イメージで提供するModel in Imageドメインをデプロイする方法を示しています。
「Model in Image初期使用例」では、補助イメージを作成するための便利な方法としてWebLogic Image Toolの使用が説明されています。これは最適な方法です。 または、イメージを手動でビルドすることもできます。 たとえば、次のステップでは、Model in Imageサンプルの初期ユースケースをDockerを使用して補助イメージをビルドするように変更します:
「Model in Imageサンプル前提条件」の対応するステップに従って、Model in Imageサンプル・ソースおよびWebLogic Deploy Toolingをダウンロードします。
ステージング・ディレクトリとして/tmp/mystaging/models
ディレクトリを作成し、モデルYAMLファイル、プロパティおよびアーカイブをコピーします:
$ mkdir -p /tmp/mystaging/models
$ cp /tmp/sample/wdt-artifacts/wdt-model-files/WLS-v1/model.10.yaml ./models
$ cp /tmp/sample/wdt-artifacts/wdt-model-files/WLS-v1/model.10.properties ./models
$ cp /tmp/sample/wdt-artifacts/wdt-model-files/WLS-v1/archive.zip ./models
archive.zip
ファイルがない場合は、/tmp/sample/wdt-artifacts/wdt-model-files/WLS-v1
をターゲット・ディレクトリとして使用しながら、Model in Imageサンプル「初期ユースケース」にこのファイルを作成するステップを繰り返します。
WDTをステージング・ディレクトリにインストールし、UNIX環境で使用されていないweblogic-deploy/bin/*.cmd
ファイルを削除します:
$ cd /tmp/mystaging
$ unzip /tmp/mii-sample/model-images/weblogic-deploy.zip -d .
$ rm ./weblogic-deploy/bin/*.cmd
weblogic-deploy.zip
ファイルがない場合は、ステップを繰り返して、Model in Imageサンプル「前提条件」にある最新のWebLogic Deploy Tooling (WDT)をダウンロードします。
/tmp/mii-sample/ai-docker-file/Dockerfile
を使用してdocker build
コマンドを実行します。
$ cd /tmp/mystaging
$ docker build -f /tmp/mii-sample/ai-docker-file/Dockerfile \
--build-arg AUXILIARY_IMAGE_PATH=/auxiliary \
--tag model-in-image:WLS-v1 .
各ビルド引数については、./Dockerfile
を参照してください。
イメージが正常に作成された場合は、ローカル・マシンのDockerリポジトリに配置されます。 例えば:
$ docker images model-in-image:WLS-v1
REPOSITORY TAG IMAGE ID CREATED SIZE
model-in-image WLS-v1 eac9030a1f41 1 minute ago 4.04MB
イメージの作成後、WDT実行可能ファイルは/auxiliary/weblogic-deploy
にあり、WDTモデル、プロパティおよびアーカイブ・ファイルは/auxiliary/models
にあります。 Dockerイメージでls
を実行して、次のことを確認できます:
$ docker run -it --rm model-in-image:WLS-v1 ls -l /auxiliary
total 8
drwxr-xr-x 1 oracle root 4096 Jun 1 21:53 models
drwxr-xr-x 1 oracle root 4096 May 26 22:29 weblogic-deploy
$ docker run -it --rm model-in-image:WLS-v1 ls -l /auxiliary/models
total 16
-rw-rw-r-- 1 oracle root 5112 Jun 1 21:52 archive.zip
-rw-rw-r-- 1 oracle root 173 Jun 1 21:59 model.10.properties
-rw-rw-r-- 1 oracle root 1515 Jun 1 21:59 model.10.yaml
$ docker run -it --rm model-in-image:WLS-v1 ls -l /auxiliary/weblogic-deploy
total 28
-rw-r----- 1 oracle root 4673 Oct 22 2019 LICENSE.txt
-rw-r----- 1 oracle root 30 May 25 11:40 VERSION.txt
drwxr-x--- 1 oracle root 4096 May 26 22:29 bin
drwxr-x--- 1 oracle root 4096 May 25 11:40 etc
drwxr-x--- 1 oracle root 4096 May 25 11:40 lib
drwxr-x--- 1 oracle root 4096 Jan 22 2019 samples
weblogic.oracle/v8
スキーマ補助イメージ構成の自動アップグレードこの項で説明する自動アップグレードは、weblogic.oracle/v8
スキーマ補助イメージ構成を、initコンテナやボリュームなどの低レベルのKubernetesスキーマに変換します。 生成された低レベル・スキーマに依存するかわりに、Oracleでは、「構成」の項で説明されているように、補助イメージに簡略化されたweblogic.oracle/v9
スキーマ構成を使用することをお薦めします。
オペレータ・バージョン4.0では、使いやすさを向上するために補助イメージが拡張されています。また、オペレータの3.xリリースから構成が変更されました。
オペレータ4.0は、weblogic.oracle/v8
スキーマ補助イメージ構成を持つドメインのシームレスなアップグレードを提供します。 4.0オペレータによって管理されるネームスペースでweblogic.oracle/v8
スキーマを使用して補助イメージを含むドメインを作成すると、「WebLogicドメイン・リソース変換webフック」によって、ドメイン・リソースのweblogic.oracle/v9
スキーマへの自動アップグレードが実行されます。 変換webフック・ランタイムは、weblogic.oracle/v9
のserverPod
仕様の下にあるinitコンテナ、ボリュームおよびボリューム・マウントを使用して、weblogic.oracle/v8
補助イメージ構成を同等の構成に変換します。 同様に、「オペレータのアップグレード」の場合、weblogic.oracle/v8
スキーマ補助イメージを含むドメインはシームレスにアップグレードされます。
次に、オペレータ3.xのweblogic.oracle/v8
スキーマ補助イメージ構成の例と、オペレータ4.0の変換webフックによって生成された同等のweblogic.oracle/v9
スキーマ構成を示します。
weblogic.oracle/v8
スキーマ補助イメージ構成spec:
auxiliaryImageVolumes:
- name: auxiliaryImageVolume1
mountPath: "/auxiliary"
serverPod:
auxiliaryImages:
- image: "model-in-image:WLS-v1"
imagePullPolicy: IfNotPresent
volume: auxiliaryImageVolume1
weblogic.oracle/v9
スキーマ補助イメージ構成 serverPod:
initContainers:
- command:
- /weblogic-operator/scripts/auxImage.sh
env:
- name: AUXILIARY_IMAGE_PATH
value: /auxiliary
- name: AUXILIARY_IMAGE_TARGET_PATH
value: /tmpAuxiliaryImage
- name: AUXILIARY_IMAGE_COMMAND
value: cp -R $AUXILIARY_IMAGE_PATH/* $AUXILIARY_IMAGE_TARGET_PATH
- name: AUXILIARY_IMAGE_CONTAINER_IMAGE
value: model-in-image:WLS-v1
- name: AUXILIARY_IMAGE_CONTAINER_NAME
value: compat-operator-aux-container1
image: model-in-image:WLS-v1
imagePullPolicy: IfNotPresent
name: compat-operator-aux-container1
volumeMounts:
- mountPath: /tmpAuxiliaryImage
name: compat-ai-vol-auxiliaryimagevolume1
- mountPath: /weblogic-operator/scripts
name: weblogic-scripts-cm-volume
volumeMounts:
- mountPath: /auxiliary
name: compat-ai-vol-auxiliaryimagevolume1
volumes:
- emptyDir: {}
name: compat-ai-vol-auxiliaryimagevolume1
変換webフック・ランタイムは、weblogic.oracle/v8
スキーマの補助イメージ構成を変換するときに、compat-
というプレフィクスが付いた名前のinitコンテナを作成します。 オペレータは、イントロスペクタ・ジョブ・ポッドでcompat-
またはwls-shared-
で始まる名前を持つinitコンテナのみを生成します。 生成された初期化コンテナの名前を変更するには、新しい名前の先頭がcompat-
またはwls-shared-
である必要があります。
weblogic.oracle/v8
スキーマ・ドメイン・リソースを手動でアップグレードするドメイン・アップグレード・ツールドメイン・リソースをweblogic.oracle/v8
スキーマからweblogic.oracle/v9
スキーマに手動でアップグレードするには、「weblogic.oracle/v8
スキーマ・ドメイン・リソースの手動アップグレード」を参照してください。