このユースケースでは、初期WebLogicドメインを設定します。 内容は次のとおりです。
ドメインのデプロイ後、オペレータはモデルをWebLogic構成に変換するイントロスペクタ・ジョブを開始し、この構成をドメイン内の各WebLogic Serverに渡します。
このサンプルでは、「補助イメージの作成」ステップで作成したwdt-domain-image:WLS-v1
という名前のauxiliary image
を使用しています。 この補助イメージのWDTモデル・ファイルは、WebLogicドメイン構成を定義します。 イメージには次のものが含まれます:
/auxiliary/weblogic-deploy
ディレクトリで想定されます。/auxiliary/models
に必要です)。この項では、新しい補助イメージを持つドメイン・リソースを、次のステップを含むネームスペースsample-domain1-ns
にデプロイします:
password
値を指定する必要があります。まず、ドメインに必要なシークレットを作成します。 WDTモデル・ファイルのマクロから参照されるWebLogic資格証明シークレットおよびその他のシークレットを作成する必要があります。 WDTモデル・ファイルでのマクロの使用の詳細は、「WDTモデル・ファイルの操作」を参照してください。
次のkubectl
コマンドを実行して、必要なシークレットをデプロイします:
ノート: 選択したパスワードをMY_WEBLOGIC_ADMIN_PASSWORD
に置換します。 このパスワードには、少なくとも7文字と1桁の数字を含める必要があります。
ノート: 選択したパスワードをMY_RUNTIME_PASSWORD
に置換します。 管理パスワードとは異なる一意である必要がありますが、これは必須ではありません。
$ kubectl -n sample-domain1-ns create secret generic \
sample-domain1-weblogic-credentials \
--from-literal=username=weblogic --from-literal=password=MY_WEBLOGIC_ADMIN_PASSWORD
$ kubectl -n sample-domain1-ns label secret \
sample-domain1-weblogic-credentials \
weblogic.domainUID=sample-domain1
$ kubectl -n sample-domain1-ns create secret generic \
sample-domain1-runtime-encryption-secret \
--from-literal=password=MY_RUNTIME_PASSWORD
$ kubectl -n sample-domain1-ns label secret \
sample-domain1-runtime-encryption-secret \
weblogic.domainUID=sample-domain1
これらのシークレットに関する重要な詳細:
username
およびpassword
フィールドが含まれている必要があります。 モデルYAMLファイルのdomainInfo.AdminUserName
およびdomainInfo.AdminPassWord
フィールドのドメインYAMLおよびマクロのspec.webLogicCredentialsSecret
フィールドでこれを参照します。 password
フィールドが含まれている必要があり、そのドメインのspec.model.runtimeEncryptionSecret
フィールドを使用して参照する必要があります。 ドメインのイントロスペクタ・ジョブおよびそのWebLogic Serverポッドからログ・ファイルを使用して内部的に渡されるデータの暗号化に使用されます。 ドメインがKubernetesにデプロイされているかぎり同じである必要がありますが、デプロイメント間で変更できます。 ここで、ドメインYAMLファイルを作成します。 ドメインは、オペレータにWebLogicドメインのデプロイ方法を伝える主要なリソースです。
「ドメイン・リソースYAMLファイル」ファイルの内容を/tmp/sample/mii-initial-domain.yaml
などのファイルにコピーします。 または、サンプル・ソースに含まれているファイル/tmp/sample/domain-resources/WLS/mii-initial-d1-WLS-v1.yaml
を使用することもできます。 このファイルには、ドメイン・リソースと参照先のクラスタ・リソース定義の両方が含まれています。 「ドメインおよびクラスタ・リソース」を参照してください。
「こちら」をクリックして、ドメインYAMLファイルを表示します。
ノート: ドメイン・カスタム・リソースをデプロイする前に、Kubernetesクラスタauxiliary-image
およびその他のイメージにアクセスできます内のすべてのノードを確認します。
次のコマンドを実行して、ドメイン・カスタム・リソースを作成します:
$ kubectl apply -f /tmp/sample/mii-initial-domain.yaml
ドメイン・リソースは、クラスタ・リソース、WebLogic Serverインストール・イメージ、定義したシークレット、および従来のWebLogic構成とWebLogicアプリケーションを含むサンプルのauxiliary image
を参照します。 詳細については、「ドメインおよびクラスタ・リソース」を参照してください。
次のkubectl describe domain
コマンドを実行して、作成されたドメインのステータスおよびイベントを確認します。
$ kubectl describe domain sample-domain1 -n sample-domain1-ns
kubectl get pods -n sample-domain1-ns --watch
を実行すると、イントロスペクタ・ジョブの実行およびWebLogic Serverポッドが起動します。 出力は次のようになります:
$ kubectl get pods -n sample-domain1-ns --watch
```
```
NAME READY STATUS RESTARTS AGE
sample-domain1-introspector-lqqj9 0/1 Pending 0 0s
sample-domain1-introspector-lqqj9 0/1 ContainerCreating 0 0s
sample-domain1-introspector-lqqj9 1/1 Running 0 1s
sample-domain1-introspector-lqqj9 0/1 Completed 0 65s
sample-domain1-introspector-lqqj9 0/1 Terminating 0 65s
sample-domain1-admin-server 0/1 Pending 0 0s
sample-domain1-admin-server 0/1 ContainerCreating 0 0s
sample-domain1-admin-server 0/1 Running 0 1s
sample-domain1-admin-server 1/1 Running 0 32s
sample-domain1-managed-server1 0/1 Pending 0 0s
sample-domain1-managed-server2 0/1 Pending 0 0s
sample-domain1-managed-server1 0/1 ContainerCreating 0 0s
sample-domain1-managed-server2 0/1 ContainerCreating 0 0s
sample-domain1-managed-server1 0/1 Running 0 2s
sample-domain1-managed-server2 0/1 Running 0 2s
sample-domain1-managed-server1 1/1 Running 0 43s
sample-domain1-managed-server2 1/1 Running 0 42s
このアクティビティの詳細を表示するには、waitForDomain.sh
サンプル・ライフサイクル・スクリプトを使用できます。 このスクリプトは、ドメインのポッドに関する有用な情報を提供し、オプションで、Completed
ステータス条件がTrue
になるまで待機します。 Completed
ドメインは、予想されるすべてのポッドがready
状態に加え、ターゲットのrestartVersion
、introspectVersion
およびimage
に達したことを示します。 例えば:
$ cd /tmp/weblogic-kubernetes-operator/kubernetes/samples/scripts/domain-lifecycle
$ ./waitForDomain.sh -n sample-domain1-ns -d sample-domain1 -p Completed
エラーが表示された場合は、「デバッグ」を参照してください。
すべての初期状態のユース・ケース・リソースがデプロイされたので、Traefikイングレス・コントローラのNodePortを介してサンプルwebアプリケーションを起動できます。
ノート: webアプリケーションは検出したデータ・ソースのリストを表示しますが、この時点では、モデルにデータ・ソースが含まれていないため、データ・ソースは検出されません。
次の例に示すように、アプリケーションのロード・バランサにwebアプリケーション・リクエストを送信します。
$ curl -s -S -m 10 -H 'host: sample-domain1-cluster-cluster-1.sample.org' http://localhost:30305/myapp_war/index.jsp
$ K8S_CLUSTER_ADDRESS=$(kubectl cluster-info | grep DNS | sed 's/^.*https:\/\///g' | sed 's/:.*$//g')
$ curl -s -S -m 10 -H 'host: sample-domain1-cluster-cluster-1.sample.org' http://${K8S_CLUSTER_ADDRESS}:30305/myapp_war/index.jsp
出力は次のようになります:
<html><body><pre>
*****************************************************************
Hello World! This is version 'v1' of the sample JSP web-app.
Welcome to WebLogic Server 'managed-server2'!
domain UID = 'sample-domain1'
domain name = 'domain1'
Found 1 local cluster runtime:
Cluster 'cluster-1'
Found min threads constraint runtime named 'SampleMinThreads' with configured count: 1
Found max threads constraint runtime named 'SampleMaxThreads' with configured count: 10
Found 0 local data sources:
*****************************************************************
</pre></body></html>
「更新1」ユースケースに進む場合は、ドメインを実行したままにします。
このサンプルで作成したリソースを削除するには、「クリーンアップ」を参照してください。