16.1.1 コンテナ・イメージへのパッチ適用

この項の手順では、新しいOIGコンテナ・イメージを使用した既存の14.1.2.1.0 Oracle Identity Governance (OIG)デプロイメントへのパッチ適用またはアップグレードについて説明します。

ノート:

管理者は、次のことに注意する必要があります:
  • Oracle Container Registryまたは独自のコンテナ・レジストリを使用していない場合は、まずKubernetesクラスタ内のすべてのノードに新しいコンテナ・イメージをロードする必要があります。
  • Kubernetes Horizontal Pod Autoscaler (HPA)が有効になっている場合は、次のステップを実行する前にHPAを無効にする必要があります。「HPAの削除」を参照してください。

ノート:

この項の手順は、7月25日以降のコンテナ・イメージへのOIGコンテナ・イメージのパッチ適用に関連しています。7月25日より前のバージョンにパッチを適用する場合は、「コンテナ・イメージへのパッチ適用」および「OIGデプロイメントが新しいイメージを使用していることの確認」に従う必要があります。

ドメインの停止

パッチを適用する前に、OIGドメインを停止する必要があります。これを行う方法の詳細は、「ドメインの停止および起動」を参照してください。

データベース・スキーマへのパッチ適用

イメージが更新されたら、データベース内のスキーマにパッチを適用する必要があります。

  1. 次を実行して、ヘルパー・ポッドが存在するかどうかを確認します:
    kubectl get pods -n <domain_namespace> | grep helper
    例:
    kubectl get pods -n oigns | grep helper
    
    出力は次のようになります。
    helper                                  1/1     Running     0          26h
    
    ヘルパー・ポッドが存在する場合は、次のコマンドでポッドを削除します:
    kubectl delete pod helper -n <namespace>
    
    例:
    kubectl delete pod helper -n oigns
    
  2. 新しいイメージを使用して、新しいヘルパー・ポッドを作成します。
    Oracle Identity Governance (OIG)コンテナ・イメージにOracle Container Registryまたは独自のコンテナ・レジストリを使用する場合:
    kubectl run --image=<image_name-from-registry>:<tag> \
    --image-pull-policy="IfNotPresent" \
    --overrides='{"apiVersion": "v1", "spec":{"imagePullSecrets": [{"name": "orclcred"}]}}' \
    helper -n <domain_namespace> \
    -- sleep infinity
    例:
    kubectl run --image=container-registry.oracle.com/middleware/oig_cpu:14.1.2.1.0-jdk17-ol8-<YYMMDD> \
    --image-pull-policy="IfNotPresent" \
    --overrides='{"apiVersion": "v1","spec":{"imagePullSecrets": [{"name": "orclcred"}]}}' \
    helper -n oigns \
    -- sleep infinity

    コンテナ・レジストリを使用せずに、各ワーカー・ノードにイメージをロードしている場合は、次のコマンドを実行します:

    kubectl run helper --image <image>:<tag> -n oigns -- sleep infinity
    例:
    kubectl run helper --image oracle/oig_cpu:14.1.2.1.0-jdk17-ol8-<YYMMDD> -n oigns --sleep infinity
    出力は次のようになります:
    pod/helper created
  3. 次のコマンドを実行して、ヘルパー・ポッド内でBashシェルを起動します:
    kubectl exec -it helper -n <domain_namespace> -- /bin/bash
    
    例:
    kubectl exec -it helper -n oigns -- /bin/bash
    
    これにより、実行中のヘルパー・ポッド内のBashシェルに移動します:
    [oracle@helper ~]$
  4. ヘルパーBashシェルで、次のコマンドを実行して、環境を設定します:
    export DB_HOST=<db_host.domain>
    export DB_PORT=<db_port>
    export DB_SERVICE=<service_name>
    export RCUPREFIX=<rcu_schema_prefix>
    export RCU_SCHEMA_PWD=<rcu_schema_pwd>
    echo -e <db_pwd>"\n"<rcu_schema_pwd> > /tmp/pwd.txt
    cat /tmp/pwd.txt
    説明:
    • <db_host.domain>は、データベース・サーバー・ホスト名です。
    • <db_port>は、データベース・リスナー・ポートです。
    • <service_name>は、データベース・サービス名です。
    • <rcu_schema_prefix>は、設定するRCUスキーマ接頭辞です。
    • <rcu_schema_pwd>は、<rcu_schema_prefix>に設定するパスワードです。
    • <db_pwd>は、データベースのSYSパスワードです。
    例:
    export DB_HOST=mydatabasehost.example.com
    export DB_PORT=1521
    export DB_SERVICE=orcl.example.com
    export RCUPREFIX=OIGK8S
    export RCU_SCHEMA_PWD=<password>
    echo -e <db_pwd>"\n"<rcu_schema_pwd> > /tmp/pwd.txt
    cat /tmp/pwd.txt
    cat /tmp/pwd.txtコマンドで正しいパスワードが表示されることを確認します。
  5. ヘルパーBashシェルで、次のコマンドを実行して、スキーマにパッチを適用します:
    /u01/oracle/oracle_common/modules/thirdparty/org.apache.ant/apache-ant/bin/ant \
    -f /u01/oracle/idm/server/setup/deploy-files/automation.xml \
    run-patched-sql-files \
    -logger org.apache.tools.ant.NoBannerLogger \
    -logfile /u01/oracle/idm/server/bin/patch_oim_wls.log \
    -DoperationsDB.host="$DB_HOST" \
    -DoperationsDB.port="$DB_PORT" \
    -DoperationsDB.serviceName="$DB_SERVICE" \
    -DoperationsDB.user="$RCUPREFIX"_OIM \
    -DOIM.DBPassword="$RCU_SCHEMA_PWD" \
    -Dojdbc=/u01/oracle/oracle_common/modules/oracle.jdbc/ojdbc11.jar
    出力は次のようになります:
    Buildfile: /u01/oracle/idm/server/setup/deploy-files/automation.xml
  6. ヘルパー・ポッドで、patch_oim_wls.logを表示して、データベースにパッチが正常に適用されたことを確認します:
    cat /u01/oracle/idm/server/bin/patch_oim_wls.log
    出力は次のようになります:
    ...
    run-patched-sql-files:
          [sql] Executing resource: /u01/oracle/idm/server/db/oim/oracle/StoredProcedures/Recon/OIM_SP_ReconBlkAccountChglog.sql
          [sql] Executing resource: /u01/oracle/idm/server/db/oim/oracle/Upgrade/oim14cBP/list/oim14c_dml_pty_insert_self_assignment_allowed.sql
          [sql] Executing resource: /u01/oracle/idm/server/db/oim/oracle/StoredProcedures/API/oim_role_mgmt_pkg_body.sql
          [sql] Executing resource: /u01/oracle/idm/server/db/oim/oracle/StoredProcedures/API/oim_usr_mgmt_pkg_body.sql
          [sql] Executing resource: /u01/oracle/idm/server/db/oim/oracle/StoredProcedures/DBDiagnostics/oim_db_diagnostics_pkg_body.sql
          [sql] 5 of 5 SQL statements executed successfully
    BUILD SUCCESSFUL
    Total time: 1 second

コンテナ・イメージへのパッチ適用

ドメインを更新するには:
  1. 次のコマンドを実行して、imageパラメータを新しいイメージの場所に設定します:
    kubectl patch domain <domainUID> -n <domain_namespace> --type merge  -p '{"spec":{"image":"<repository>:<new_tag>"}}'
    
    例:
    • OIGコンテナ・イメージにOracle Container Registryまたは独自のコンテナ・レジストリを使用する場合:
      kubectl patch domain governancedomain -n oigns --type merge  -p '{"spec":{"image":"container-registry.oracle.com/middleware/oig_cpu:<new_tag>"}}'
      
    • コンテナ・レジストリを使用せずに、各ワーカー・ノードにイメージをロードしている場合:
      kubectl patch domain governancedomain -n oigns --type merge  -p '{"spec":{"image":"oracle/oig:<new_tag>"}}'
      
      出力は次のようになります:
      domain.weblogic.oracle/governancedomain patched
      

OIGドメインの起動

OIGドメインを起動するには、「ドメインの停止および起動」を参照してください。

OIGデプロイメントが新しいイメージを使用していることの確認

アップグレードに成功したら、次のコマンドを実行して、ポッドで使用されているイメージを表示できます:
kubectl describe pod <pod> -n <domain_namespace>
例:
kubectl describe pod governancedomain-oim-server1 -n oigns
新しいイメージは次のセクションに表示されます:
...
Containers:
  weblogic-server:
    Container ID:  cri-o://220fa83d079e079ac183c00f884b10ea30a794527dbb65e6964a035d450384f8
    Image:         container-registry.oracle.com/middleware/oig_cpu:<new>
    Image ID:      container-registry.oracle.com/middleware/oig_cpu@sha256:cdf51b6aa47cd05573bc53244681b193fb4e2f6db56e50d2251b9416bc68ebc0
    Port:          14100/TCP
    Host Port:     0/TCP
    Command:
...