コンテナ環境でのVNCセッションの設定

コンテナ環境でディスプレイ端末を使用してGUIベースの操作を実行するには、追加のパッケージをデプロイします。

この項では、WebLogic Image Toolを使用して追加のパッケージを含む既存のOracle SOA Suiteイメージを更新し、このイメージを使用してコンテナ環境でVNCセッションを設定するためのKubernetesデプロイメントを作成する方法について説明します。

始める前に

WebLogic Image Toolが設定されていることを確認します。詳細は、設定を参照してください。WebLogic Image Toolでは、デフォルトでdocker CLIが使用されます。デフォルトをpodmanなどでオーバーライドするには、WLSIMG_BUILDERを実行可能ファイルのフルパスに設定します。たとえば、WLSIMG_BUILDER="/usr/bin/podman"です

コンテナ・イメージの更新

  1. additionalBuildCmds.txtを確認して更新します。サンプルadditionalBuildCmds.txtは、VNCセッションのインストールおよび設定に必要なパッケージとともにOracle Linux 8に提供されています。
  2. パッケージを追加する場合は、additionalBuildCmds.txtを更新します。
  3. imagetool.shを実行します。
  4. additionalBuildCmds.txtを適用してsoasuite:14.1.2.0-vncとしてタグ付けし、次のコマンドを実行して、既存のOracle SOA Suiteコンテナ・イメージsoasuite:14.1.2.0を更新するには:
    $ cd $WORKDIR/create-soa-domain/domain-upgrade/vncsetup
    $ imagetool update --fromImage soasuite:14.1.2.0 --tag soasuite:14.1.2.0-vnc --chown oracle:root --additionalBuildCommands ./additionalBuildCmds.txt 
    
  5. イメージをリモートまたはローカル・レジストリにプッシュします

    • リモート・レジストリ - 更新されたイメージsoasuite:14.1.2.0-vncをコンテナ・レジストリにプッシュして、Kubernetesクラスタ・ホスティングがプルできるようにします。
      $ podman tag soasuite:14.1.2.0-vnc  your-registry.com/oracle/soasuite:14.1.2.0-vnc$ podman push your-registry.com/oracle/soasuite:14.1.2.0-vnc
    • ローカル・レジストリ - ワーカー・ノードへのアクセスが必要です。

      最初にイメージをアーカイブします:

      $ podman save -o soasuite-14.1.2.0-vnc.tar.gz soasuite:14.1.2.0-vnc
      

      アーカイブsoasuite-14.1.2.0-vnc.tar.gzをワーカー・ノードにコピーし、イメージをローカル・コンテナ・ストレージにロードします:

      $ podman load < soasuite-14.1.2.0-vnc.tar.gz

VNCアクセスの設定

  1. コンテナ環境でVNCセッションを作成するには、スクリプトstart_vnc.shを使用します:
    $ cd $WORKDIR/create-soa-domain/domain-upgrade/vncsetup/scripts
    $ ./start_vnc.sh -h
    
    This is a helper script for starting VNC session in a container environment.
    
    Please see README.md for more details.
    
    Usage:
    
        start_vnc.sh [-c persistentVolumeClaimName] [-m mountPath]  [-n namespace] [-i image] [-u imagePullPolicy] [-t serviceType] [-d vncpassword] [-k killvnc] [-h]"
    
        [-c | --claimName]                : Persistent volume claim name.
    
        [-m | --mountPath]                : Mount path of the persistent volume in vnchelper deployment.
    
        [-n | --namespace]                : Namespace. Default is 'default'.
    
        [-i | --image]                    : Container image for the vnchelper deployment (optional). Default is 'ghcr.io/oracle/oraclelinux:8'.
    
        [-u | --imagePullPolicy]          : Image pull policy for the vnchelper deployment (optional). Default is 'IfNotPresent'.
    
        [-p | --imagePullSecret]          : Image pull secret for the vnchelper deployment (optional). Default is 'None'.
    
        [-t | --serviceType]              : Kubernetes service type for VNC port. Default is 'NodePort'. Supported values are NodePort and LoadBalancer.
    
        [-d | --vncpassword]              : Password for VNC access. Default is 'vncpassword'.
    
        [-k | --killvnc                   : Removes the Kubernetes resources created in the namespace created for VNC session.
    
        [-h | --help]                     : This help.
    
  2. アップグレード・アシスタント(ua)やreconfig.shなどのGUIベースのコマンドを起動してリリース・アップグレードを実行する場合は、ドメインで使用されるのと同じドメイン・ホーム永続ボリューム要求名およびマウント・パスでstart_vnc.shスクリプトを使用します。次に、soansネームスペースにデプロイされたOracle SOASuiteドメインの例を示します。マウント・パス/u01/oracle/user_projectsでコンテナ内にマウントされたsoainfra-domain-pvc永続ボリューム要求を使用する場合、次のコマンドを使用してスクリプトを起動できます:
    $ ./start_vnc.sh -n soans -i soasuite:14.1.2.0-vnc -c soainfra-domain-pvc -t NodePort -d welcome -m /u01/oracle/user_projects
    

    サンプル出力:

    [2024-11-07T17:45:55.893964348Z][INFO] Creating deployment 'vnchelper' using image 'soasuite:14.1.2.0-vnc', persistent volume claim 'soainfra-domain-pvc' and mount path '/u01/oracle/user_projects'.
    configmap/vnchelper-scripts-cm configured
    Checking the configmap vnchelper-scripts-cm was created
    secret/vnchelper-scripts-secret configured
    Checking the secret vnchelper-scripts-secret was created
    deployment.apps "vnchelper" deleted
    deployment.apps/vnchelper created
    service/vnchelper created
    [2024-11-07T17:46:06.838237729Z][INFO] =========================================== VNC environment details ====================================================
    [2024-11-07T17:46:06.840832397Z][INFO] VNCSERVER started on DISPLAY= <NODE PORT>
    [2024-11-07T17:46:06.842955900Z][INFO] To start using VNC Session ==> connect via VNC viewer with <NODE NAME>:<NODE PORT>
    [2024-11-07T17:46:06.845361778Z][INFO]
    [2024-11-07T17:46:06.847710989Z][INFO] Your data hosted at persistentvolumeClaim soainfra-domain-pvc, are available for access at /u01/oracle/user_projects
    [2024-11-07T17:46:06.850974036Z][INFO] ========================================================================================================================
    [2024-11-07T17:46:06.853056442Z][INFO]
    [2024-11-07T17:46:06.855075115Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    [2024-11-07T17:46:06.857105300Z][INFO] >>>>>> To cleanup the Kubernetes resources created for VNC session
    [2024-11-07T17:46:06.859015919Z][INFO] >>>>>> Run: $ ./start_vnc.sh -k -n soans
    [2024-11-07T17:46:06.861045303Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    
  3. VNCセッションの使用を開始するには、start_vnc.sh出力から取得した<NODE NAME>:<NODE PORT>を使用してVNCビューアを介して接続します。
  4. 最後に、VNCアクセスを削除し、作成されたKubernetesリソースをクリーンアップするには、次のコマンドを実行します:
    $ ./start_vnc.sh -k -n <namespace>