このドキュメントでは、ドメイン・イントロスペクションが自動的に発生する場合、およびKubernetes環境のOracle WebLogic Serverでドメイン構成の追加イントロスペクションを開始する方法とタイミングについて説明します。
KubernetesでWebLogicドメインの操作を管理するために、Oracle WebLogic Kubernetes Operatorは"introspection"ジョブを使用してWebLogicドメイン構成を分析します。 このジョブはDOMAIN_UID-introspector
という名前で、ドメインと同じネームスペースで実行され、オペレータがWebLogic Serverインスタンスの起動を開始する前に正常に完了する必要があります。 「ドメイン・ホーム・ソース・タイプ」はそれぞれ異なるため(たとえば、Domain on PVはPersistentVolume上のドメイン・ホームを使用し、Model in ImageはWDTモデルからドメイン・ホームを動的に生成します)、このジョブによって作成されるポッドは、後で管理サーバー用に生成されるポッドと同様になります。 これにより、オペレータがWebLogic Serverインスタンスが使用するのと同じWebLogicドメイン構成を分析することが保証されます。
イントロスペクションにより、次のことが保証されます:
イントロスペクションは次の場合に自動的に行われます:
「ユースケース」などでは、イントロスペクションを明示的に開始することが望ましい場合があります。 イントロスペクションを開始するには、ドメインintrospectVersion
フィールドの値を変更します。
introspectVersion
を新しい値に設定します。
kind: Domain
metadata:
name: domain1
spec:
introspectVersion: "2"
...
restartVersion
と同様に、introspectVersion
フィールドにも必要な書式はありませんが、継続的に増加する数値やタイムスタンプなど、一意である可能性が高い値を使用することをお薦めします。
オペレータ3.1.0以降では、ドメイン・リソースのspec.introspectVersion
が設定されている場合、ドメインの各WebLogic Serverポッドには、ポッドが実行されているintrospectVersion
を示すキーweblogic.introspectVersion
を持つラベルが付けられます。
Name: domain1-admin-server
Namespace: domain1-ns
Labels: weblogic.createdByOperator=true
weblogic.domainName=domain1
weblogic.domainRestartVersion=abcdef
weblogic.domainUID=domain1
weblogic.introspectVersion=12345
weblogic.serverName=admin-server
ドメインのspec.introspectVersion
が変更されると、オペレータがポッドを再起動するとき、またはオペレータがポッドを再起動する必要がないと判断したときに、各WebLogic Serverポッドのweblogic.introspectVersion
ラベルが新しいintrospectVersion
値に更新されます。
イントロスペクション用に作成されたDOMAIN_UID-introspector
という名前のKubernetesジョブが失敗することがあります。
イントロスペクションが失敗した場合、オペレータはWebLogic Serverインスタンスを起動しません。 これが初期イントロスペクションではなく、すでにWebLogic Serverインスタンスが実行されている場合、イントロスペクションに失敗すると、ドメインの動作状態を変更せずに既存のWebLogic Serverインスタンスが実行されたままになります。
イントロスペクションは定期的に再試行され、最終的に処理が失敗したことを示すドメインstatus
でタイムアウトになります。 失敗状態から回復するには、根本的な問題を修正し、introspectVersion
を更新します。
「構成オーバーライド」または「Model in Imageドメイン・ホームの生成」に関連するイントロスペクションの失敗の診断の詳細を確認してください。
イントロスペクタ・ログは、spec.logHome
が構成され、spec.logHomeEnabled
がtrueの場合、ドメイン・リソースのspec.logHome
ディレクトリにミラー化されます。
次の項では、イントロスペクタを再実行するための一般的なユースケースについて説明します。
永続ボリューム(Domain on PV)上に既存のWebLogicドメイン・ホームがあり、現在WebLogic Serverインスタンスが実行中の場合、ドメイン構成に新しいWebLogicクラスタまたは管理対象サーバーを定義して、すでに実行中のWebLogic Serverインスタンスのライフサイクルに影響を与えずに、これらの新しいインスタンスを起動できるようになりました。
オペレータ3.0.0より前は、フル・ドメインの停止および再起動以外のイントロスペクションを開始するメカニズムがなく、オペレータが新しいクラスタまたは管理対象サーバーを認識していなかったため、これは不可能でした。 これで、ドメイン構成の更新後に、introspectVersion
を変更してイントロスペクションを開始できます。
たとえば、「cluster-1」という名前の単一のクラスタを含むドメイン構成がある場合、ドメインYAMLファイルには次のような内容が含まれます:
spec:
...
clusters:
- clusterName: cluster-1
replicas: 3
...
WebLogicドメイン構成を(コンソールまたはWLSTを使用して)"cluster-2"という名前の新しい動的クラスタを追加するように変更した場合は、次のようにドメインYAMLファイルを更新して、この新しいクラスタのクラスタ・メンバーをすぐに起動できます:
spec:
...
clusters:
- clusterName: cluster-1
replicas: 3
- clusterName: cluster-2
replicas: 2
introspectVersion: "2"
...
この更新されたドメインYAMLファイルが適用されると、オペレータはドメイン構成の新しいイントロスペクションを開始し、その間に追加のWebLogicクラスタについて学習し、オペレータはこの新しいクラスタのメンバーであるWebLogic Serverインスタンスを引き続き起動します。 この場合、オペレータは「cluster-2」という名前のクラスタのメンバーである複数の管理対象サーバーを起動します。
このオペレータは、顧客が提供する「構成オーバーライド」をサポートしています。 Domain on PVまたはDomain in Imageでサポートされているこれらの構成オーバーライドにより、データ・ソースURLや資格証明などのドメイン構成の要素をオーバーライドできます。
オペレータ3.0.0を使用して、構成オーバーライドを変更し、これらの新しい構成オーバーライドをすでに実行中のWebLogic Serverインスタンスに配布できるようになりました。 これを行うには、構成オーバーライドを含むConfigMapを更新するか、これらの構成オーバーライドによって参照されるシークレットを更新してから、introspectVersion
フィールドを変更してイントロスペクションを開始します。
overrideDistributionStrategy
と呼ばれる新しいフィールドが導入され、configuration
の下に配置されています。このフィールドは、更新された構成オーバーライドをすでに実行中のWebLogic Serverインスタンスに動的に分散するかどうか、または新しい構成オーバーライドがサーバーの起動時または再起動時にのみ適用されるかどうかを制御します。
overrideDistributionStrategy
のデフォルト値はDynamic
です。これは、新しい構成オーバーライドが、すでに実行されているWebLogic Serverインスタンスに動的に分散されることを意味します。
または、overrideDistributionStrategy
をOnRestart
に設定できます。つまり、新しい構成オーバーライドは、すでに実行されているWebLogic Serverインスタンスに分散されませんが、かわりに、起動または再起動時にサーバーにのみ適用されます。 この値を使用しても、WebLogic Serverインスタンスは、restartVersion
などの他のフィールドに対する不在の変更を再起動「しません」。
実行中のWebLogic Serverインスタンスに配布された構成オーバーライドへの変更は、対応するWebLogic構成のMBean属性が「動的」である場合にのみ有効になります。 たとえば、データソースの「passwordEncrypted」属性は動的ですが、「URL」属性は動的ではありません。
オペレータは、「モデル更新」を実行中のModel in Imageドメインに伝播するためにイントロスペクタの再実行をサポートします。