イメージへのパッチ適用

Oracleは、My Oracle Support (MOS)で最新のバンドル・パッチおよび推奨個別パッチを適用したOracle SOA Suiteイメージを定期的にリリースしています。ただし、新しいバンドル・パッチおよび個別パッチを使用してイメージを作成する必要がある場合は、WebLogic Image Toolを使用してこれらのイメージを構築できます。

Oracle SOA Suiteパッチへのアクセス権がある場合は、バンドル・パッチおよび個別パッチを使用して既存のOracle SOA Suiteイメージにパッチを適用できます。WebLogic Image Toolを使用してOracle SOA Suiteイメージにパッチを適用することをお薦めします。

推奨事項:

  • WebLogic Image Toolの作成機能を使用して、Oracle SOA Suite Dockerイメージにバンドル・パッチと複数の個別パッチを適用します。イメージのサイズが最適化されるため、この方法をお薦めします。
  • WebLogic Image Toolの更新機能を使用して、Oracle SOA Suite Dockerイメージに単一の個別パッチを適用します。パッチ適用ツールによって導入された追加のイメージ・レイヤーが原因で、パッチ適用されたイメージ・サイズが大幅に増加する可能性があることに注意してください。

パッチが適用されたOracle SOA Suiteイメージの適用

パッチが適用されたイメージでOracle SOA Suiteドメインを更新するには、まず、パッチが適用されたイメージがプルまたは作成され、Kubernetesクラスタのノードで使用可能であることを確認します。パッチが適用されたイメージが使用可能になったら、次のステップに従って、パッチが適用されたイメージでOracle SOA Suiteドメインを更新できます:

すべてのサーバーの停止

ノート:

次のステップは、ダウンタイムなしのパッチ適用以外の場合にのみ適用されます。ダウンタイムなしのパッチ適用の場合は、「インストール後の要件に対応」に進んでください。

パッチを適用する前に、ドメイン内のすべてのサーバーを停止します:

  1. domain.yaml構成ファイルで、spec.serverStartPolicyフィールド値をNeverに更新します。
  2. 更新されたdomain.yamlファイルを適用して、ドメインを停止します(すべてのサーバーを停止します):
    kubectl apply -f domain.yaml

インストール後の要件に対応

パッチが適用されたOracle SOA Suiteイメージのパッチにインストール後のステップがある場合は、次のステップに従います:

  • ドメイン・ホーム・アクセスを使用したKubernetesポッドの作成
  • インストール後のステップの実行

ドメイン・ホーム・アクセスを使用したKubernetesポッドの作成

  1. Oracle SOA Suiteドメインのドメイン・ホーム永続ボリューム要求の詳細を取得します。たとえば、ネームスペースsoansで永続ボリューム要求の詳細をリストするには:
    kubectl get pvc -n soans   

    永続ボリューム要求がsoainfra-domain-pvcであることを示す出力例:

    NAME                  STATUS   VOLUME               CAPACITY   ACCESS MODES   STORAGECLASS                    AGE
    soainfra-domain-pvc   Bound    soainfra-domain-pv   10Gi       RWX            soainfra-domain-storage-class   xxd
    
  2. ドメイン・ホームの永続ボリューム要求を使用して、YAML soapostinstall.yamlを作成します。

    たとえば、サンプル出力に従ってsoainfra-domain-pvcを使用します:

    ノート:

    次のサンプルYAMLで、soasuite:14.1.2.0-XXXXXXをパッチ適用済イメージに置き換えます:
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
         run: soapostinstall
      name: soapostinstall
      namespace: soans
    spec:
     containers:
     - image: soasuite:14.1.2.0-XXXXXX
       name: soapostinstall
       command: ["/bin/bash", "-c", "sleep infinity"]
       imagePullPolicy: IfNotPresent
       volumeMounts:
       - name: soainfra-domain-storage-volume
         mountPath: /u01/oracle/user_projects
     volumes:
     - name: soainfra-domain-storage-volume
       persistentVolumeClaim:
        claimName: soainfra-domain-pvc
    
  3. YAMLを適用してKubernetesポッドを作成します:
    kubectl apply -f soapostinstall.yaml
    

インストール後のステップの実行

ドメイン・ホームでインストール後のステップを実行する必要がある場合:

  1. soapostinstallポッドでbashシェルを起動します:
    kubectl exec -it -n soans soapostinstall -- bash

    これにより、実行中のsoapostinstallポッドにbashシェルが開きます:

    [oracle@soapostinstall oracle]$
  2. soapostinstallポッドのbashシェルを使用して、ドメイン・ホームで必要なステップを実行します。
  3. インストール後のステップが正常に完了したら、soapostinstallポッドを削除できます:
    kubectl delete -f  soapostinstall.yaml

パッチ適用されたイメージの適用

インストール後の必要なステップが完了したら、ドメインを起動します:

  1. domain.yaml構成ファイルで、パッチが適用されたイメージでイメージ・フィールドの値を更新します。次に例を示します:
      image: soasuite:14.1.2.0-XXXXXX
  2. ダウンタイムなしのパッチ適用以外の場合、domain.yamlでspec.serverStartPolicyフィールド値をIfNeededに更新します。
  3. 更新されたdomain.yaml構成ファイルを適用して、ドメインを起動します。
    kubectl apply -f domain.yaml

    ノート:

    ダウンタイムなしのパッチ適用以外の場合、domain.yamlでspec.serverStartPolicyフィールド値をIfNeededに更新します。
  4. パッチが適用されたイメージでドメインが更新されていることを確認します:
    kubectl describe domain <domainUID> -n <domain-namespace>|grep "Image:"
    

    サンプル出力:

    kubectl describe domain soainfra -n soans |grep "Image:"
    Image:                          soasuite:14.1.2.0-XXXXXXX