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

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

ノート:

管理者は、次のことに注意する必要があります:
  • Oracle Container Registryまたは独自のコンテナ・レジストリを使用していない場合は、まずKubernetesクラスタ内のすべてのノードに新しいコンテナ・イメージをロードする必要があります。
  • Kubernetes Horizontal Pod Autoscaler (HPA)が有効になっている場合は、次のステップを実行する前にHPAを無効にする必要があります。「HPAの削除」を参照してください。
  • コンテナ・イメージを更新すると、ポッドがローリング再起動されます。管理サーバーは終了してから再起動し、OAM管理対象サーバーおよびポリシー・マネージャ・サーバーがそれに続きます。
次のオプションのいずれかを選択し、新しいイメージでOAMデプロイメントを更新します:
  • kubectl edit domainコマンドの実行。
  • kubectl patch domainコマンドの実行。

kubectl edit domainコマンドの実行

ドメインを更新するには:
  1. 次のコマンドを実行します。
    kubectl edit domain <domainname> -n <namespace>
    
    例:
    kubectl edit domain accessdomain -n oamns
    

    ノート:

    これにより、標準のviコマンドを使用してパラメータを変更できるドメインの編集セッションが開きます。
  2. 新しいOAMコンテナ・イメージを参照するようにimageパラメータを更新します:
    • OAMコンテナ・イメージにOracle Container Registryまたは独自のコンテナ・レジストリを使用する場合は、次のように新しいイメージの場所を指すようにイメージを更新します:
      ...
      image: container-registry.oracle.com/middleware/oam_cpu:<new_tag>
        imagePullPolicy: IfNotPresent
        imagePullSecrets:
        - name: orclcred
      ...
    • コンテナ・レジストリを使用せずに、各ワーカー・ノードにイメージをロードしている場合は、新しいイメージを指すようにイメージを更新します:
      ...
      image: container-registry.oracle.com/middleware/oam_cpu:<new_tag>
        imagePullPolicy: oracle/oam:<new_tag>
      ...
  3. ファイルを保存して終了します(:wq!)

kubectl patchコマンドの実行

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

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

前述のステップに従うと、ローリング再起動が実行されます。管理サーバーは終了してから再起動し、OAM管理対象サーバーおよびポリシー・マネージャ・サーバーがそれに続きます。

サーバーの再起動中に、次のコマンドを実行してステータスを表示できます:
kubectl get pods -n <domain_namespace> -w
例:
kubectl get pods -n oamns -w
ポッドが稼働したら、次のコマンドを実行して、ポッドで使用されているイメージを表示できます:
kubectl describe pod <pod> -n <domain_namespace>
例:
kubectl describe pod accessdomain-oam-server1 -n oamns
新しいイメージは次のセクションに表示されます:
...
Containers:
  weblogic-server:
    Container ID:  cri-o://220fa83d079e079ac183c00f884b10ea30a794527dbb65e6964a035d450384f8
    Image:         container-registry.oracle.com/middleware/oam_cpu:<new_tag>
    Image ID:      container-registry.oracle.com/middleware/oam_cpu@sha256:cdf51b6aa47cd05573bc53244681b193fb4e2f6db56e50d2251b9416bc68ebc0
    Port:          14100/TCP
    Host Port:     0/TCP
    Command:
...