機械翻訳について

FMW Infrastructureドメインの管理

目次

オペレータは、FMWインフラストラクチャ・ドメイン、つまり、WebLogic ServerインストーラではなくFMWインフラストラクチャ・インストーラで作成されるドメインをサポートしています。 これらのドメインにはJava Required Files (JRF)が含まれます。JRFは、たとえば、Oracle SOA Suiteのような上位スタック製品の前提条件です。 これらのドメインには、データベースおよびリポジトリ作成ユーティリティ(RCU)の使用も必要です。

このドキュメントでは、FMW Infrastructureドメインをオペレータとともに実行する場合の特別な考慮事項について詳しく説明します。 ここにリストされている考慮事項以外のFMW Infrastructureドメインは、WebLogic Serverドメインと同様に動作します。 このサイトの残りのドキュメントは、FMW InfrastructureドメインおよびWebLogic Serverドメインにも同様に適用されます。

ノート: FMWインフラストラクチャ・ドメインは、Domain on PV ドメイン・ホーム・ソース・タイプのみを使用してサポートされます。

KubernetesでのOracle Fusion Middleware製品のデプロイメントの詳細は、https:// oracle.github.io /fmw-kubernetes/を参照してください。

制限事項

オペレータを使用してKubernetesでWebLogic Serverドメインを実行する場合と比較して、FMW Infrastructureドメインには現在次の制限があります:

  • WebLogic Monitoring Exporterは現在、WebLogic MBeanツリーのみをサポートしています。 JRF MBeansのサポートはまだ追加されていません。
  • 構成されたクラスタのみがサポートされます。 FMW Infrastructureドメインでは動的クラスタはサポートされていません。 すべてのスケーリング機能を引き続き使用でき、ドメイン作成時にクラスタの最大サイズを定義するだけで済みます。
  • FMW Infrastructureドメインは、2.2.0より前のバージョンのオペレータではサポートされていません。
  • FMWインフラストラクチャ・ドメインは、Model in ImageまたはDomain in Image 「ドメイン・ホーム・ソース・タイプ」を使用してサポートされません。

FMW Infrastructureイメージの取得

WebLogic Kubernetes Operatorにはパッチ29135930が必要です。 標準の事前構築済のFMWインフラストラクチャ一般提供イメージcontainer-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.3には、すでにこのパッチが適用されています。 FMW Infrastructureの12.2.1.4.0イメージでは、このパッチは必要ありません。 Oracle Container Registryにログインしてライセンス契約に同意する方法の詳細は、この「ドキュメント」を参照してください。

ノート: 2022年12月現在、Fusion Middleware 12.2.1.3はサポートされていません。 FMW Infrastructure 12.2.1.3の最後のCritical Patch Updates (CPU)イメージは、2022年10月に公開されました。 2023年6月現在、Oracle WebLogic Server 12.2.1.3はサポートされなくなりました。 WebLogic Server 12.2.1.3の最後のCPUイメージは、2023年4月に公開されました。

このサンプルでは、一般提供 (GA)イメージを使用しています。 GAイメージは、パブリック・インターネットから環境を使用できないデモンストレーションおよび開発目的「のみ」に適しています。「本番での使用はできません」 本番では、常にOCRのCPU (パッチ適用済)イメージを使用するか、WebLogic Image Tool (WIT)と--recommendedPatchesオプションを使用してイメージを作成する必要があります。 詳細は、「Oracle WebLogic Serverの本番環境の保護」「最新のパッチと更新の適用」を参照してください。

Oracle Container Registryからイメージをプルするには、webブラウザでhttps://container-registry.oracle.comに移動し、Oracle Single Sign-On認証サービスを使用してログインします。 SSO資格証明がまだない場合は、ページ上部にあるSign Inリンクをクリックして作成します。

webインタフェースを使用して、デプロイするOracleソフトウェア・イメージのOracle標準条件および制限を受け入れます。 これらの用語の受入れは、ソフトウェア・イメージをOracle Single Sign-Onログイン資格証明にリンクするデータベースに格納されます。

まず、Oracle Container Registryにログインする必要があります:

$ docker login container-registry.oracle.com

その後、次のコマンドを使用してイメージをプルできます:

$ docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4

必要に応じて、次のことができます:

  • docker run container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4 sh -c 'source $ORACLE_HOME/wlserver/server/bin/setWLSEnv.sh > /dev/null 2>&1 && java weblogic.version'を使用したWLSバージョンの確認

  • docker run container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4 sh -c '$ORACLE_HOME/OPatch/opatch lspatches'によるWLSパッチの確認

このイメージの使用の詳細は、Oracle Container Registryを参照してください。

FMW Infrastructureイメージの作成

FMW Infrastructureバイナリを含むイメージを作成することもできます。 FMW Infrastructureを実行するイメージの作成方法を示す「サンプル」がOracle GitHubアカウントに用意されています。 サーバーJREイメージのビルドやプル、Fusion Middleware Infrastructureインストーラ・バイナリのダウンロードなどの重要な前提条件ステップについては、このサンプルに関連付けられているREADMEファイルを参照してください。

リポジトリをクローンし、Oracle Technology Networkまたはe-deliveryからインストーラをダウンロードした後、提供されたスクリプトを実行してイメージを作成します:

$ cd docker-images/OracleFMWInfrastructure/dockerfiles
$ ./buildDockerImage.sh -v 12.2.1.4 -s

生成されるイメージの名前はoracle/fmw-infrastructure:12.2.1.4になります。

このイメージをオペレータとともに使用するには、「必要なパッチ」もインストールする必要があります。 必要なパッチがインストールされたイメージの作成方法を示す「サンプル」が用意されています。

My Oracle Supportからパッチをダウンロードした後、提供されているスクリプトを実行してパッチ適用済イメージを作成します:

$ cd docker-images/OracleFMWInfrastructure/samples/12213-patch-fmw-for-k8s
$ ./build.sh

これにより、oracle/fmw-infrastructure:12213-update-k8sという名前のイメージが生成されます。

すべてのサンプルおよび手順は、事前作成済イメージであるcontainer-registry.oracle.com/middleware/fmw_infrastructure:12.2.1.4を参照しています。 これらのサンプルでは、WebLogic Server 12.2.1.3に基づいてイメージを作成し、タグoracle/fmw-infrastructure:12213-update-k8sを使用するため、このimage値を使用するようにサンプル入力を更新してください。

これらのサンプルでは、FMW Infrastructureバイナリおよび必要なパッチを含むイメージを作成できます。 このイメージを使用して、リポジトリ作成ユーティリティを実行し、「永続ボリューム上のドメイン」モデルを使用してドメインを実行できます。 “domain in an image”モデルを使用する場合は、さらに1つのステップを実行して、ドメインを含む別のレイヤーを追加する必要があります。 WLSTまたはWDTを使用してドメインを作成できます。

ドメインを作成する前に、データベースに必要なスキーマを設定する必要があります。

データベースへのアクセスの構成

FMW Infrastructureドメインには、必要なスキーマがインストールされているデータベースが必要です。 これらのスキーマを作成できる、リポジトリ作成ユーティリティ(RCU)と呼ばれるユーティリティが用意されています。 ドメインを作成する前に、データベースを設定する必要があります。 FMW InfrastructureをKubernetesで実行することで追加の要件はありません。同じ既存の要件が適用されます。

テストおよび開発では、Kubernetes内またはKubernetes外でデータベースを実行することを選択できます。

Oracle Databaseイメージは、非本番用にのみサポートされています。 詳細は、My Oracle Supportノートを参照してください: Docker 「ドキュメントID 2216342.1」で実行されているデータベースの場合は、Oracle Support。

Kubernetes内でのデータベースの実行

Kubernetes内でデータベースを実行する場合は、Oracle Container Registryの公式のコンテナ・イメージを使用できます。 ディスク領域(4GB)の要件が減り、コンテナの起動が速くなった、EEのスリム・バリアント(12.2.0.1-slimタグ)があることに注意してください。

テスト/開発またはCI/CDシナリオでは、Kubernetesクラスタ内でのデータベースの実行がより適切である可能性があります。

Oracleデータベースのデプロイメントを定義するKubernetes YAMLファイルの例を次に示します:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: oracle-db
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/instance: dev
      app.kubernetes.io/name: oracle-db
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: dev
        app.kubernetes.io/name: oracle-db
    spec:
      containers:
      - env:
        - name: DB_SID
          value: devcdb
        - name: DB_PDB
          value: devpdb
        - name: DB_DOMAIN
          value: k8s
        image: container-registry.oracle.com/database/enterprise:12.2.0.1-slim
        imagePullPolicy: IfNotPresent
        name: oracle-db
        ports:
        - containerPort: 1521
          name: tns
          protocol: TCP
        resources:
          limits:
            cpu: "1"
            memory: 2Gi
          requests:
            cpu: 200m
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

SIDやPDBの名前などを設定するために環境変数を渡すことができます。 このドキュメントでは、使用可能なその他の変数について説明します。
ドキュメントの手順に従って、sysパスワードを設定します。

また、既知の名前でKubernetesクラスタ内でデータベースを使用できるようにするサービスも作成する必要があります。 例:

apiVersion: v1
kind: Service
metadata:
  name: oracle-db
  namespace: default
spec:
  ports:
  - name: tns
    port: 1521
    protocol: TCP
    targetPort: 1521
  selector:
    app.kubernetes.io/instance: dev
    app.kubernetes.io/name: oracle-db
  sessionAffinity: None
  type: ClusterIP

前述の例では、アドレスoracle-db.default.svc.cluster.local:1521/devpdb.k8sを使用してクラスタにデータベースが表示されます。

Kubernetesクラスタでデータベースを実行する場合、厳密には必要ありませんが、ネットワーク内のポッドからRCUを実行することもできます。 NodePortを作成して、Kubernetesクラスタの外部にデータベースを公開し、クラスタにアクセスできる別のマシンでRCUを実行できます。

Kubernetes外でのデータベースの実行

Kubernetes外でデータベースを実行する場合は、Kubernetesのポッドで実行されているコンテナがデータベースを表示する方法を作成する必要があります。 これを行うには、次の例に示すように、セレクタなしでKubernetesサービスを定義し、それをエンドポイント定義に関連付けます:

kind: Service
apiVersion: v1
metadata:
 name: database
spec:
 type: ClusterIP
 ports:
 - port: 1521
   targetPort: 1521
---
kind: Endpoints
apiVersion: v1
metadata:
 name: database
subsets:
 - addresses:
     - ip: 129.123.1.4
   ports:
     - port: 1521

これにより、現在のネームスペースにDNS名databaseが作成され、前の例のようにネームスペースが指定されていない場合はdefaultが作成されます。 この例では、完全修飾名はdatabase.default.svc.cluster.localになります。 2つ目の部分はネームスペースです。 このようなサービスのClusterIPを検索した場合、オーバーレイ・ネットワーク(Kubernetesクラスタ内のネットワーク)上にIPアドレスがあります。 たとえば、flannelを使用している場合、アドレスは10.0.1.25のようになります。 これは通常、ルーティングされないアドレスです。

Kubernetesで実行されているポッド内のコンテナから、そのアドレスおよびポート1521に接続できます。 Kubernetesは、エンドポイント定義で指定されたアドレス(この例では129.123.1.4:1521)に接続をルーティングします。 このIPアドレス(または名前)は、Kubernetesクラスタ内のオーバーレイ・ネットワークではなく、KubernetesノードのIPスタックの観点から解決されます。 これは実際のルーティングされたIPアドレスです。

データ・ソースを作成するときは、database:1521/some.serviceなどの内部アドレスを使用します。

データベースは外部からアクセス可能であるため、RCUはネットワーク上の任意のマシンから通常の方法で実行できます。

リポジトリ作成ユーティリティの実行によるデータベース・スキーマの設定

Kubernetesクラスタ内のポッドからRCUを実行する場合は、前に構築したコンテナ・イメージをサービスポッドとして使用してRCUを実行できます。 これを行うには、次のようにイメージを使用してポッドを起動します:

$ kubectl run rcu --generator=run-pod/v1 --image container-registry.oracle.com/middleware/fmw_infrastructure:12.2.1.4 -- sleep infinity

これにより、sleep infinityを実行するだけのcontainer-registry.oracle.com/middleware/fmw_infrastructure:12.2.1.4イメージから作成されたコンテナを実行するポッドを含む、rcuというKubernetesデプロイメントが作成されます。このコンテナは基本的に、実行する必要があるすべてのコマンドを実行するために実行できるポッドを作成します。

このコンテナ内を取得してコマンドを実行するには、次のコマンドを使用します:

$ kubectl exec -ti rcu /bin/bash

このポッドの操作が終了したら、次のコマンドを使用して削除できます:

$ kubectl delete pod rcu

同じ方法を使用して、WLSTなどの他のユーティリティを実行するための一時ポッドを取得できます。

スキーマの作成

このポッド内で、次のコマンドを使用してRCUをコマンド行(GUIなし)モードで実行し、FMWスキーマを作成できます。 正しいプレフィクスと接続文字列を指定する必要があります。 sysユーザーのパスワードと、通常のスキーマ・ユーザーに使用するパスワードの入力を求められます:

$ /u01/oracle/oracle_common/bin/rcu \
  -silent \
  -createRepository \
  -databaseType ORACLE \
  -connectString oracle-db.default:1521/devpdb.k8s \
  -dbUser sys \
  -dbRole sysdba \
  -useSamePasswordForAllSchemaUsers true \
  -selectDependentsForComponents true \
  -schemaPrefix FMW1 \
  -component MDS \
  -component IAU \
  -component IAU_APPEND \
  -component IAU_VIEWER \
  -component OPSS  \
  -component WLS  \
  -component STB

non-Kubernetes環境の場合と同様に、データベース・スキーマと一致するドメイン間の関連付けを維持する必要があります。 これに役立つ特定の機能はありません。 RCUプレフィクス(schemaPrefix引数の値)をdomainUIDと同じにして、この関連付けを維持することをお薦めします。

スキーマの削除

スキーマを削除する場合は、次のようなコマンドを使用できます:

$ /u01/oracle/oracle_common/bin/rcu \
  -silent \
  -dropRepository \
  -databaseType ORACLE \
  -connectString oracle-db.default:1521/devpdb.k8s \
  -dbUser sys \
  -dbRole sysdba \
  -selectDependentsForComponents true \
  -schemaPrefix FMW1 \
  -component MDS \
  -component IAU \
  -component IAU_APPEND \
  -component IAU_VIEWER \
  -component OPSS \
  -component WLS \
  -component STB

ここでも、正しいプレフィクスと接続文字列を設定する必要があり、sysユーザー・パスワードの入力を求められます。

RCU資格証明を使用したKubernetesシークレットの作成

また、データベース・スキーマの資格証明を含むKubernetesシークレットを作成する必要があります。 次のサンプルを使用してドメインを作成すると、このシークレットからRCU資格証明が取得されます。

シークレットの作成方法を示す「サンプル」が用意されています。 必要なスキーマ所有者ユーザー名は、schemaPrefix値の後にアンダースコアとコンポーネント名(FMW1_STBなど)が続きます。 スキーマ所有者のパスワードは、RCUの作成時に通常のスキーマ・ユーザーに指定したパスワードになります。

FMW Infrastructureドメインの作成

イメージの作成が完了し、RCUスキーマの作成が完了したら、ドメインを作成できます。 FMW Infrastructureドメインの作成方法を示す「サンプル」が用意されています。

FMW Infrastructureイメージへのパッチ適用

FMW Infrastructureバイナリには、次の2種類のパッチを適用できます:

  • ゼロ・ダウンタイム・パッチ適用(ZDP)に適格なパッチ。つまり、ローリング再起動で適用できます。
  • ZDPに準拠していないパッチ。つまり、ドメインを停止して再起動する必要があります。

パッチに付随するREADMEファイルを参照して、パッチがゼロ・ダウンタイム・パッチ適用の対象であるかどうかを確認できます。

ローリング再起動で適用できるZDP準拠のパッチを適用する場合は、この「サンプル」に示されているようにFMW Infrastructureイメージにパッチを適用した後、新しいイメージの名前でドメイン・カスタム・リソースを編集すると、オペレータがドメインのローリング再起動を開始します。

非ZDP準拠のパッチをFMW Infrastructureバイナリ・イメージに適用する場合は、パッチを適用する前にドメイン全体を停止する必要があります。 詳細は、「ドメイン・ライフサイクル操作」のドキュメントを参照してください。

ZDPに準拠していないパッチの例として、動的に適用できないスキーマ変更があります。

Coherenceに関するその他の考慮事項

Coherenceを含むドメインを実行している場合、詳細は「Coherenceの要件」を参照してください。