サンプル全体で使用するドメインのタイプ(WLSまたはJRF)を選択します。
JAVA_HOME環境変数を設定し、有効なJDK 8または11インストールを参照する必要があります。
オペレータ・ソースを取得し、/tmp/weblogic-kubernetes-operatorに配置します。
例えば:
$ cd /tmp
$ git clone --branch v4.2.20
https://github.com/oracle/weblogic-kubernetes-operator.git
ノート: オペレータ・ソース・ツリーの最上位ディレクトリを/tmp/weblogic-kubernetes-operatorと呼びますが、別のロケーションを使用できます。
オペレータ・ソースの取得の詳細は、「開発者ガイドの要件」を参照してください。
Domain on PVサンプルを新しいディレクトリにコピーします。たとえば、ディレクトリ/tmp/sampleを使用します。
$ mkdir -p /tmp/sample
$ cp -r /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-on-pv/* /tmp/sample
ノート: サンプルのこの作業用コピーを/tmp/sampleと呼びますが、別のロケーションを使用できます。
サンプルのwdt-artifactsディレクトリを新しいディレクトリにコピーします。たとえば、ディレクトリ/tmp/sample/wdt-artifactsを使用します。
$ mkdir -p /tmp/sample/wdt-artifacts
$ cp -r /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/wdt-artifacts/* /tmp/sample/wdt-artifacts
最新のWebLogic Deploy Tooling (WDT)およびWebLogic Image Tool (WIT)インストーラのZIPファイルを/tmp/sample/wdt-artifactsディレクトリにダウンロードします。 WDTとWITの両方がイメージの作成に必要です。
$ cd /tmp/sample/wdt-artifacts
$ curl -m 120 -fL https://github.com/oracle/weblogic-deploy-tooling/releases/latest/download/weblogic-deploy.zip \
-o /tmp/sample/wdt-artifacts/weblogic-deploy.zip
$ curl -m 120 -fL https://github.com/oracle/weblogic-image-tool/releases/latest/download/imagetool.zip \
-o /tmp/sample/wdt-artifacts/imagetool.zip
WebLogic Image Toolを設定するには、次のコマンドを実行します:
$ cd /tmp/sample/wdt-artifacts
$ unzip imagetool.zip
$ ./imagetool/bin/imagetool.sh cache deleteEntry --key wdt_latest
$ ./imagetool/bin/imagetool.sh cache addInstaller \
--type wdt \
--version latest \
--path /tmp/sample/wdt-artifacts/weblogic-deploy.zip
wdt_latestキーに対応するキャッシュ・エントリがない場合、WebLogic Image Tool cache deleteEntryコマンドは何も実行しません。 WITキャッシュ参照情報はデフォルトで$HOME/cache/.metadataファイルに格納され、キャッシュにすでにWDTのバージョンが--type wdt --version latestのロケーションにある場合、cache addInstallerコマンドは失敗します。 WITキャッシュの詳細については、「WITキャッシュのドキュメント」を参照してください。
これらのステップでは、WITを/tmp/sample/wdt-artifacts/imagetoolディレクトリにインストールし、さらにWDT ZIPファイル・インストーラを指すwdt_latestエントリをツールのキャッシュに配置します。 WITおよびWDTインストーラへのキャッシュされた参照を、後でモデル・イメージを作成するためのサンプルで使用します。
後でアーカイブ・ヘルパーに使用するWebLogic Deploy Toolingを設定するには、次のコマンドを実行します:
$ unzip /tmp/sample/wdt-artifacts/weblogic-deploy.zip
ネームスペースsample-domain1-nsを管理するようにオペレータが設定されていることを確認してください。 また、Traefikイングレス・コントローラが同じネームスペースを管理し、ポート30305でリスニングしていることも確認してください。 これを行うには、「クイック・スタート」ガイドと同じステップに従って「ドメインの準備」ステップを実行します。
「ドメインの準備」ステップを完了したら、「停止」を確認し、次の手順に従って再開します。
Traefikポート30305からこのサンプルのWebLogicドメイン内のクラスタにHTTPをリダイレクトするイングレスを設定します。
サンプル・ソース・ディレクトリにすでに含まれている各イングレスYAMLファイルでkubectl apply -fを実行します:
$ kubectl apply -f https://raw.githubusercontent.com/oracle/weblogic-kubernetes-operator/release/4.2/kubernetes/samples/scripts/create-weblogic-domain/ingresses/traefik-ingress-sample-domain1-admin-server.yaml
$ kubectl apply -f https://raw.githubusercontent.com/oracle/weblogic-kubernetes-operator/release/4.2/kubernetes/samples/scripts/create-weblogic-domain/ingresses/traefik-ingress-sample-domain1-cluster-cluster-1.yaml
ノート: 各クラスタ・イングレスには、オペレータ・ドメインUIDとクラスタ名の両方を使用して修飾された異なるホスト名を指定します。 これにより、クラスタ名が異なるクラスタ間で同じ場合でも、各クラスタを一意にアドレス指定できるようになります。 curlを使用して、イングレスを介してWebLogicドメインにアクセスする場合、イングレスのホスト名と一致するホスト名ヘッダーを指定する必要があります。
イングレスおよびロード・バランサの詳細は、Ingressを参照してください。
サンプルのドメイン・リソースYAMLによって参照されるWebLogic 12.2.1.4イメージを取得します。
a. ブラウザを使用して、Oracle Container Registryにアクセスします。
b. イメージのロケーションの選択: JRFドメインの場合は、Middleware、fmw-infrastructureの順に選択します。WLSドメインの場合は、Middleware、weblogicの順に選択します。
c. Sign Inを選択し、ライセンス契約に同意します。
d 端末を使用してコンテナ・レジストリにログイン: docker login container-registry.oracle.com。
e. このサンプルの後半では、WebLogic Image Toolコマンドを実行するときに、モデル・イメージを作成するためのベース・イメージとしてイメージが使用されます。 具体的には、ツールは、--fromImageパラメータを使用して、ツールのコマンドラインで指定された以前のライセンス・イメージのいずれかに対してdocker pullを暗黙的にコールします。 JRFの場合、このサンプルはcontainer-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4を指定し、WLSの場合、サンプルはcontainer-registry.oracle.com/middleware/weblogic:12.2.1.4を指定します。
基本イメージの例は、デモおよび開発目的「のみ」に適した一般提供 (GA)イメージです。ここで、環境はパブリック・インターネットから使用できません。これらは「本番で使用できません」。 本番では、常にOCRのCPU (パッチ適用済)イメージを使用するか、WebLogic Image Tool (WIT)と--recommendedPatchesオプションを使用してイメージを作成する必要があります。 詳細は、「Oracle WebLogic Serverの本番環境の保護」の「最新のパッチと更新の適用」を参照してください。
ノート: Domain on PV、WLSドメイン・タイプを使用している場合は、この項をスキップし、Domain on PVサンプルについてはドメイン作成イメージのビルドに進みます。
ノート: この項の要件は、WLSおよびJRFドメイン・タイプの前提条件に追加されています。
JRFドメインには、インフラストラクチャ・データベースと、このデータベースにアクセスするためのドメインの構成が必要です。 詳細は、ユーザー・ドキュメントの「JRFドメイン」を参照してください。 ドメインを作成する「前」に、これらのステップをすべて実行する必要があります。
JRFドメインにはインフラストラクチャ・データベースが必要であり、異なるドメインごとにスキーマおよび一連の表を使用してこのデータベースを初期化する必要があります。 次の例は、データベースの設定方法を示しています。 データベースは次の属性を使用して設定されます:
| 属性 | 値 |
|---|---|
| データベースKubernetesネームスペース | default |
| データベースKubernetesポッド | oracle-db |
| データベース・イメージ | container-registry.oracle.com/database/enterprise:12.2.0.1-slim |
| データベース・パスワード(Oracle Applications SSOユーザーは不要) | MY_DBA_PASSWORD |
| インフラストラクチャ・スキーマ・プレフィクス | FMW1 (for domain1) |
| インフラストラクチャ・スキーマ・パスワード | MY_RCU_SCHEMA_PASSWORD |
| データベースURL | oracle-db.default.svc.cluster.local:1521/devpdb.k8s |
データベース・イメージへのアクセス権があることを確認してから、それを使用してデプロイメントを作成します:
ブラウザを使用してhttps://container-registry.oracle.comにログインし、Database -> enterpriseを選択してライセンス契約に同意します。
データベース・イメージを取得します:
docker login container-registry.oracle.comです。docker pull container-registry.oracle.com/database/enterprise:12.2.0.1-slimです。SYSアカウントに必要なOracle DBAパスワードを使用して、oracle-db-secretという名前のシークレットをデプロイします。
$ kubectl -n default create secret generic oracle-db-secret \
--from-literal='password=MY_DBA_PASSWORD'
_および#のみを使用します。 /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-oracle-db-serviceのサンプル・スクリプトを使用して、ポッドoracle-dbで実行されるOracleデータベースを作成します。
$ cd /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-oracle-db-service
$ start-db-service.sh
このスクリプトは、接続文字列oracle-db.default.svc.cluster.local:1521/devpdb.k8sおよび管理パスワードMY_DBA_PASSWORDを使用して、defaultネームスペースにデータベースをデプロイします。
このステップは、「データベースの実行」に記載されているステップに基づきます。
ノート: Kubernetesクラスタ・ノードのすべてがローカル・キャッシュ内のデータベース・イメージにアクセスできるわけではない場合は、container-registry.oracle.comのログイン資格証明を使用してKubernetes docker secretをデフォルトのネームスペースにデプロイし、-s your-image-pull-secretを使用してこのシークレットの名前をパラメータとしてstart-db-service.shに渡します。 または、クラスタ内の各ローカルDockerキャッシュにデータベース・イメージをコピーします。 詳細は、「Cannot pull image」FAQを参照してください。
WARNING: Oracle Databaseイメージは、非本番用にのみサポートされています。 詳細は、My Oracle Supportノートを参照してください: Dockerで実行されているデータベース用のOracle Support (ドキュメントID 2216342.1)。
オペレータがデータベースおよびOPSSウォレットにアクセスできるようにするには、ドメインをデプロイする前に、モデルから参照されるデータベース接続文字列、ユーザー名およびパスワード、およびドメインから参照されるOPSSウォレット・パスワード・シークレットを含むRCUアクセス・シークレットを作成する必要があります。 また、モデルでRCUDbInfoスタンザを定義する必要があります。
このサンプルには、/tmp/sample/wdt-artifacts/wdt-model-filesおよび/tmp/sample/domain-resourcesディレクトリ内のJRFモデルおよびドメインYAMLファイルの例が含まれており、次の項の手順でRCUおよびOPSSシークレットの設定について説明します。
サンプルの手順に従う場合は、WLSのみの手順を避け、対応するモデル・イメージ・タグおよびドメインYAMLファイル名でJRFをWLSに置き換えます。
たとえば、次の例のようになります:
「JRFドメインYAML」ファイルには、sample-domain1-opss-wallet-password-secretという名前のシークレットを参照するconfiguration.opss.walletPasswordSecretフィールドがあり、選択したwalletPasswordがあります。
JRFドメイン作成イメージ・モデルには、前提条件ステップの1つとしてデフォルト・ネームスペースにデプロイしたOracleデータベースにアクセスするために、属性rcu_prefix、rcu_schema_passwordおよびrcu_db_conn_stringの適切な値を持つsample-domain1-rcu-accessシークレットを参照する次のdomainInfo -> RCUDbInfoスタンザがあります。
RCUDbInfo:
rcu_prefix: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_prefix@@'
rcu_schema_password: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_schema_password@@'
rcu_db_conn_string: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_db_conn_string@@'
JRFドメインの重要な情報については、「JRFドメイン」を参照してください。