JDeveloperを使用してOracle SOA SuiteおよびOracle Service BusアプリケーションをKubernetes上のOracle SOA Suiteにデプロイします
この項では、Oracle SOA SuiteおよびOracle Service Busコンポジット・アプリケーションをOracle JDeveloperからKubernetes上のOracle SOA Suite環境にデプロイする方法について説明します。
次の手順を実行し、JDeveloperを使用してKubernetes上のOracle SOA Suite環境にデプロイします:
- Oracle SOAクイックスタート・コンテナ・イメージを作成します。
- Oracle SOAクイックスタート・バイナリ
fmw_14.1.2.0.0_soa_quickstart_generic.jar
およびfmw_14.1.2.0.0_soa_quickstart_generic2.jar
をダウンロードし、両方のバイナリをフォルダ$WORKDIR/create-soa-domain/jdev-support/containerfiles
にコピーします。デフォルトでは、スクリプトはdockerを使用してOracle SOAクイックスタート・イメージを構築します。
podman
を使用するには、次のステップに進む前に、次のパラメータを設定します:$ export BUILD_CLI=podman$ export BUILD_OPTS="--format docker"
- 次に、Oracle Container RegistryからプルできるOracle JDK17イメージ
container-registry.oracle.com/java/jdk:17
が必要です。Oracle Container Registryにナビゲートし、Oracle Accountを使用してサインインし、Oracle Standard Termsに同意します。Oracleアカウントがまだない場合は、新しいアカウントを作成します。ログイン後、ビルド・ホストでdockerまたはpodman loginコマンドを使用します:$ podman login container-registry.oracle.com Username: <Oracle Account Username> Password: <auth token> Login successful.
- 正常にログインしたら、次のコマンドを実行してJDKイメージをプルします:
$ podman pull container-registry.oracle.com/java/jdk:17
- 次のコマンドを実行して、JDeveloperのOracle SOAクイックスタート・イメージを作成します:
$ sh build.sh -t 14.1.2.0.0
このステップでは、Oracle SOAクイックスタート・イメージ
oracle/soajeveloper:14.1.2.0.0
と、VNCサーバー・アクセスに必要なパッケージを作成します。
- Oracle SOAクイックスタート・バイナリ
- Oracle SOAクイックスタート・イメージ
oracle/soajeveloper:14.1.2.0.0
をコンテナ・レジストリにプッシュして、ドメインをホストしているKubernetesクラスタがプルできるようにします。$ podman tag oracle/soajeveloper:14.1.2.0.0 your-registry.com/oracle/soajeveloper:14.1.2.0.0 $ podman push your-registry/oracle/soajeveloper:14.1.2.0.0
- SOA/Oracle Service Busコンポジット・プロジェクトを共有の場所(/share/appsなど)に配置します。oracleユーザー(uid: 1000およびgid: 0)にディレクトリ/share/appsに対する権限を付与して、コンテナ内でアクセス可能で書込み可能になるようにします。
$ sudo chown -R 1000:0 /share/apps
- /share/appsに配置したSOA/Oracle Service Busコンポジット・プロジェクトを使用して、PersistentVolumeおよびPersistentVolumeClaim (
soadeploy-pv.yaml
およびsoadeploy-pvc.yaml
)を作成します。- 提供されているサンプル(soadeploy-pv.yaml)を使用してPersistentVolumeを作成します。このサンプルはNFSを使用します(hostPathまたはその他のサポートされているPVタイプを使用できます):
apiVersion: v1 kind: PersistentVolume metadata: name: soadeploy-pv spec: storageClassName: soadeploy-storage-class capacity: storage: 10Gi accessModes: - ReadWriteMany # Valid values are Retain, Delete or Recycle persistentVolumeReclaimPolicy: Retain # hostPath: nfs: server: X.X.X.X path: "/share/apps"
- PersistentVolumeClaim
soadeploy-pvc.yaml
を作成します:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: soadeploy-pvc namespace: soans spec: storageClassName: soadeploy-storage-class accessModes: - ReadWriteMany resources: requests: storage: 10Gi
$ kubectl apply -f soadeploy-pvc.yaml
- 提供されているサンプル(soadeploy-pv.yaml)を使用してPersistentVolumeを作成します。このサンプルはNFSを使用します(hostPathまたはその他のサポートされているPVタイプを使用できます):
- Kubernetesポッドでイメージyour-registry.com/oracle/soajeveloper:14.1.2.0.0をプルするために資格証明が必要な場合は、イメージ・プル・シークレットを作成します。
$ kubectl create secret docker-registry image-secret -n <domain-namespace> --docker-server=your-registry.com --docker-username=xxxxxx --docker-password=xxxxxxx --docker-email=my@company.com
- スクリプト
jdev_helper.sh
を使用して、JDeveloper環境をドメイン・ネームスペースと同じネームスペースに作成する必要があります。$ cd jdev_support/scripts $ ./jdev_helper.sh -h This is a helper script for SOA jdeveloper access setup in container environment. Please see README.md for more details. Usage: jdev_helper.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 jdevhelper deployment. [-n | --namespace] : Domain namespace. Default is 'default'. [-i | --image] : Container image for the jdevhelper deployment (optional). Default is 'ghcr.io/oracle/oraclelinux:8'. [-u | --imagePullPolicy] : Image pull policy for the helper deployment (optional). Default is 'IfNotPresent'. [-p | --imagePullSecret] : Image pull secret for the helper 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 SOA JDeveloper access through VNC. [-h | --help] : This help.
前述のPersistentVolumeClaim、イメージ・プル・シークレットおよびOracle SOAクイックスタート・イメージを使用したサンプル・コマンドは次のとおりです:
./jdev_helper.sh -n soans -i your-registry.com/oracle/soajeveloper:14.1.2.0.0 -t NodePort -d welcome -p image-secret -c soadeploy-pvc
出力:
[2024-07-12T10:05:17.250564395Z][INFO] Creating deployment 'jdevhelper' using image 'your-registry.com/oracle/soajeveloper:14.1.2.0.0', persistent volume claim 'soadeploy-pvc' and mount path '/shared'. deployment.apps "jdevhelper" deleted deployment.apps/jdevhelper created service/jdevhelper unchanged [2024-07-12T10:05:30.917075513Z][INFO] =========================================== VNC environment details ==================================================== [2024-07-12T10:05:30.920164769Z][INFO] VNCSERVER started on DISPLAY= <NODE PORT> [2024-07-12T10:05:30.921882024Z][INFO] To start using Oracle JDeveloper ==> connect via VNC viewer with <NODE NAME>:<NODE PORT> [2024-07-12T10:05:30.924094226Z][INFO] [2024-07-12T10:05:30.928925615Z][INFO] Your projects/applications hosted at persistentvolumeClaim soadeploy-pvc, are available for JDeveloper access at /shared [2024-07-12T10:05:30.930312223Z][INFO] ======================================================================================================================== [2024-07-12T10:05:30.931901926Z][INFO] Navigate to the following location from VNCViewer on terminal [2024-07-12T10:05:30.933337276Z][INFO] $ cd /u01/oracle/jdeveloper/jdev/bin [2024-07-12T10:05:30.934801172Z][INFO] [2024-07-12T10:05:30.936312907Z][INFO] For example, to connect to secure Oracle SOA Domain with DemoTrust, run the following command: [2024-07-12T10:05:30.939333282Z][INFO] $ ./jdev -J-Dweblogic.security.SSL.ignoreHostnameVerify=true -J-Dweblogic.security.TrustKeyStore=DemoTrust [2024-07-12T10:05:30.941008547Z][INFO] [2024-07-12T10:05:30.949161692Z][INFO] While creating Application Server Connection, use Administration server pod name and internal configured ports. [2024-07-12T10:05:30.951463685Z][INFO] For example 'WebLogic Hostname' value is 'soainfra-adminserver' [2024-07-12T10:05:30.956109261Z][INFO] 'SSL Port' is '9002' for secure domain or 'Port' is '7001' for non-secure domain [2024-07-12T10:05:30.957739730Z][INFO] ======================================================================================================================== [2024-07-12T10:05:30.959372215Z][INFO] [2024-07-12T10:05:30.960767620Z][INFO] [2024-07-12T10:05:30.962397769Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [2024-07-12T10:05:30.963984357Z][INFO] >>>>>> To cleanup the Kubernetes resources created for Oracle JDeveloper access through VNC [2024-07-12T10:05:30.965782926Z][INFO] >>>>>> Run: $ ./jdev_helper.sh -k -n soans [2024-07-12T10:05:30.967358203Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $
パスワード
welcome
を使用し、presistenceVolumeClaimNameを使用せずにVNCアクセス可能なJDeveloper環境を作成するサンプル・コマンド:$ ./jdev_helper.sh -n soans -i your-registry.com/oracle/soajdeveloper:14.1.2.0.0 -t NodePort -d welcome -p image-secret
サンプル出力:
[2024-07-08T17:59:38.277941559Z][INFO] CAUTION!!!! The presistenceVolumeClaimName is not provided. Projects/applications stored in this setup is ephemeral and not persistent [2024-07-08T17:59:38.279462462Z][INFO] CAUTION!!!! In case you want the projects/applications created to be persistent, recommended to pass a persistentVolumeClaimName with option -c [2024-07-08T17:59:38.281126958Z][INFO] Creating deployment 'jdevhelper' using image 'your-registry.com/oracle/soajdeveloper:14.1.2.0.0', persistent volume claim '' and mount path '/shared'. deployment.apps "jdevhelper" deleted deployment.apps/jdevhelper created service/jdevhelper unchanged [2024-07-08T17:59:51.926915480Z][INFO] =========================================== VNC environment details ==================================================== [2024-07-08T17:59:51.928832925Z][INFO] VNCSERVER started on DISPLAY= <NODE PORT> [2024-07-08T17:59:51.930804513Z][INFO] To start using Oracle JDeveloper ==> connect via VNC viewer with <NODE NAME>:<NODE PORT> [2024-07-08T17:59:51.932756905Z][INFO] [2024-07-08T17:59:51.935113101Z][INFO] Your projects/applications created are ephemeral and not persistent as no persistentvolumeClaim is used [2024-07-08T17:59:51.937168808Z][INFO] ======================================================================================================================== [2024-07-08T17:59:51.940554959Z][INFO] Navigate to the following location from VNCViewer on terminal [2024-07-08T17:59:51.942509904Z][INFO] $ cd /u01/oracle/jdeveloper/jdev/bin [2024-07-08T17:59:51.944227450Z][INFO] [2024-07-08T17:59:51.945968141Z][INFO] For example, to connect to secure Oracle SOA Domain with DemoTrust, run the following command: [2024-07-08T17:59:51.948112907Z][INFO] $ ./jdev -J-Dweblogic.security.SSL.ignoreHostnameVerify=true -J-Dweblogic.security.TrustKeyStore=DemoTrust [2024-07-08T17:59:51.950122988Z][INFO] [2024-07-08T17:59:51.952409522Z][INFO] While creating Application Server Connection, use Administration server pod name and internal configured ports. [2024-07-08T17:59:51.954187243Z][INFO] For example 'WebLogic Hostname' value is 'soainfra-adminserver' [2024-07-08T17:59:51.955624588Z][INFO] 'SSL Port' is '9002' for secure domain. 'Port' is '7001' for non-secure domain [2024-07-08T17:59:51.956996289Z][INFO] ======================================================================================================================== [2024-07-08T17:59:51.958355926Z][INFO] [2024-07-08T17:59:51.959729069Z][INFO] [2024-07-08T17:59:51.961092794Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [2024-07-08T17:59:51.962525360Z][INFO] >>>>>> To cleanup the Kubernetes resources created for Oracle JDeveloper access through VNC [2024-07-08T17:59:51.963854601Z][INFO] >>>>>> Run: $ ./jdev_helper.sh -k -n soans [2024-07-08T17:59:51.965774791Z][INFO] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $
- Oracle JDeveloperの使用を開始するには、
jdev_helper.sh
出力から取得された<NODE NAME>:<NODE PORT>
を使用してVNCビューアを介して接続します。 - VNCViewerから次の場所に移動します:
$ cd /u01/oracle/jdeveloper/jdev/bin
- 次のコマンドを実行し、DemoTrustなどを使用してセキュアなOracle SOAドメインに接続します:
$ ./jdev -J-Dweblogic.security.SSL.ignoreHostnameVerify=true -J-Dweblogic.security.TrustKeyStore=DemoTrust
- アプリケーション・サーバー接続の作成時、管理サーバー・ポッド名および内部構成済ポートを使用します。たとえば、
WebLogic Hostname
値はsoainfra-adminserver
です。セキュア・ドメインの場合、SSLポートは9002
で、非セキュア・ドメインの場合、ポートは7001
です。 - VNCを介したOracle JDeveloperアクセス用に作成されたKubernetesリソースをクリーンアップするには、次のコマンドを実行します:
$ ./jdev_helper.sh -k -n <domain namespace>