- Oracle SOA Suite on Kubernetes
- 付録
- オンプレミスでのクイック・スタート・デプロイメント
- Oracle SOA Suiteドメインの作成および構成
Oracle SOA Suiteドメインの作成および構成
- Oracle SOA Suiteドメインを準備します。
- Oracle SOA Suiteドメインをホストできるネームスペースを作成します。ドメインを管理するには、ネームスペースに
weblogic-operator=enabled
というラベルを付けます。kubectl create namespace soans kubectl label namespace soans weblogic-operator=enabled
- Kubernetes永続ボリュームおよび永続ボリューム要求を作成します。
- a.Oracle SOA Suiteドメイン・ホーム・ディレクトリを作成します。uid:gidが1000:0のユーザーがホスト・システムにすでに存在するかどうかを確認します:
sudo getent passwd 1000
このコマンドがユーザー名(最初のフィールド)を返す場合は、次の
useradd
コマンドをスキップできます。そうでない場合は、useradd
を使用してoracleユーザーを作成します:sudo useradd -u 1000 -g 0 oracle
Oracle SOA Suiteドメイン・ホームに使用するディレクトリを作成します:
sudo mkdir /scratch/k8s_dir sudo chown -R 1000:0 /scratch/k8s_dir
create-pv-pvc-inputs.yaml
には、デフォルトで次の値があります:- baseName: domain
- domainUID: soainfra
- namespace: soans
- weblogicDomainStoragePath: /scratch/k8s_dir
変更が必要な場合は、確認して更新します。
cp create-pv-pvc-inputs.yaml create-pv-pvc-inputs-domain.yaml vi create-pv-pvc-inputs-domain.yaml
create-pv-pvc.sh
スクリプトを実行して、更新された`create-pv-pvc-inputs-domain.yaml`を使用してPVおよびPVC構成ファイルを作成します:cd ${WORKDIR}/create-weblogic-domain-pv-pvc ./create-pv-pvc.sh -i create-pv-pvc-inputs-domain.yaml -o output-domain
- 前のステップで作成した構成ファイルを使用して、PVおよびPVCを作成します:
kubectl create -f output-domain/pv-pvcs/soainfra-domain-pv.yaml kubectl create -f output-domain/pv-pvcs/soainfra-domain-pvc.yaml
- a.Oracle SOA Suiteドメイン・ホーム・ディレクトリを作成します。uid:gidが1000:0のユーザーがホスト・システムにすでに存在するかどうかを確認します:
- Oracle SOA Suiteドメインのデータベースをインストールします。
このステップは、スタンドアロン・データベースがまだ設定されておらず、コンテナでデータベースを使用する場合にのみ必要です。KubernetesでOracle Databaseサービスを作成するには、ここを参照してください。このガイドでは、helmチャートを使用したKubernetes上の単一インスタンス・データベースを使用して、Oracle Database Operatorを使用せずにデータベースをプロビジョニングします。
- Oracle Database GitHubリポジトリをクローニングします:
cd ${WORKDIR} git clone https://github.com/oracle/docker-images.git cd docker-images/OracleDatabase/SingleInstance/helm-charts
- Oracleデータベースのデータ・ファイルおよび構成は、コンテナの/opt/oracle/oradataパスに格納されます。永続ボリューム要求のストレージ・クラスを構成して、デプロイメント間のデータの永続性を維持する必要があります。永続性が必要ない場合は、次のステップをスキップし、
–set
オプションを使用してpersistence
をnull
にオーバーライドできます。永続ボリューム要求に必要なストレージ・クラスを作成するには、次のステップに従います:- データベースの永続性に使用するディレクトリを作成します。
sudo mkdir /scratch/k8s_dir_db sudo chown -R 54321 /scratch/k8s_dir_db
- 次の値を使用して永続ボリュームを作成するためにcreate-pv-pvc-inputs.yamlを更新します:
- baseName:
db
- namespace:
default
- weblogicDomainStorageSize:
100Gi
- weblogicDomainStoragePath:
/scratch/k8s_dir_db
cd ${WORKDIR}/create-weblogic-domain-pv-pvc cp create-pv-pvc-inputs.yaml create-pv-pvc-inputs-db.yaml sed -i -e "s/baseName: domain/baseName: db/g" create-pv-pvc-inputs-db.yaml sed -i -e "s/namespace: soans/namespace: default/g" create-pv-pvc-inputs-db.yaml sed -i -e "s/k8s_dir/k8s_dir_db/g" create-pv-pvc-inputs-db.yaml sed -i -e "s/10Gi/100Gi/g" create-pv-pvc-inputs-db.yaml
- baseName:
- create-pv-pvc.shスクリプトを実行して、更新されたcreate-pv-pvc-inputs-db.yamlを使用してPV構成ファイルを作成します:
cd ${WORKDIR}/create-weblogic-domain-pv-pvc ./create-pv-pvc.sh -i create-pv-pvc-inputs-db.yaml -o output-db
ノート:
helmチャートではStorageClass名を使用し、PVCを作成するため、PVCを作成しないでください。 - 前述のスクリプトはPVとPVCの両方に対して作成されますが、前のステップで作成したPV構成ファイルのみを使用します:
kubectl create -f output-db/pv-pvcs/soainfra-db-pv.yaml
- helm-chartsを使用してコンテナにデータベースを作成します:
cd ${WORKDIR}/docker-images/OracleDatabase/SingleInstance/helm-charts helm install db19c \ --set persistence.storageClass=soainfra-db-storage-class \ --set imagePullPolicy=IfNotPresent \ oracle-db
- 「DATABASE IS READY TO USE」というメッセージが表示されるまで、データベース・デプロイメントのログを確認します:
kubectl logs deployment.apps/db19c-oracle-db -f
- SYSユーザーのパスワードを取得します:
kubectl get secret db19c-oracle-db -o jsonpath={.data.oracle_pwd} | base64 --decode; echo
helm-chartは、create-domain-inputs.yamlファイルのrcuDatabaseURLパラメータとして使用される接続文字列db19c-oracle-db.default.svc.cluster.local:1521/ORCLPDB1を使用して、データベースにアクセスするために必要なサービスを作成します。データベースの作成に異なるHelmリリース名または構成パラメータを使用した場合は、それに応じて接続文字列を更新します。
- ドメイン・タイプ(soaosbなど)のOracle SOA Suiteスキーマを作成します。
-
データベースのSYSDBAユーザー名とパスワードを含むシークレットを作成します。
kubectl -n default create secret generic oracle-rcu-secret \ --from-literal='sys_username=sys' \ --from-literal='sys_password=REPLACE-WITH-SYS-PASSWORD' \ --from-literal='password=REPLACE-WITH-SCHEMA-PASSWORD'
Oracle SOA Suiteスキーマをインストールするには、次の入力を指定してcreate-rcu-schema.shスクリプトを実行します:
- -s <RCU接頭辞>
- -t <SOAドメイン・タイプ>
- -d <Oracle Database URL>
- -i <SOASuiteイメージ>
- -n <ネームスペース>
- -c <SYSDBAユーザー名とパスワードおよびRCUスキーマ所有者のパスワードを含む資格証明シークレットの名前>
- -r <カンマ区切り変数>
- -l <タイムアウト制限(秒)。(オプション)。(デフォルト: 300)>
例:
ccd ${WORKDIR}/create-rcu-schema ./create-rcu-schema.sh \ -s SOA1 \ -t soaosb \ -d db19c-oracle-db.default.svc.cluster.local:1521/ORCLPDB1 \ -i container-registry.oracle.com/middleware/soasuite:14.1.2.0-<17 or 21>-<ol8 or ol9>-<tag> \ -n default \ -b EBR \ -c oracle-rcu-secret \ -r SOA_PROFILE_TYPE=SMALL,HEALTHCARE_INTEGRATION=NO
-
- helm-chartsを使用してコンテナにデータベースを作成します:
- ドメインの作成に必要なKubernetesシークレットを作成します。
- ドメインと同じKubernetesネームスペースで、ドメインのKubernetesシークレットを作成します。この例では、ユーザー名はweblogic、パスワードはWelcome1、ネームスペースはsoansです:
cd ${WORKDIR}/create-weblogic-domain-credentials ./create-weblogic-credentials.sh \ -u weblogic \ -p Welcome1 \ -n soans \ -d soainfra \ -s soainfra-domain-credentials
- ドメインと同じKubernetesネームスペースで、RCUのKubernetesシークレットを作成します:
- スキーマ・ユーザー: SOA1
- スキーマ・パスワード: REPLACE-WITH-SCHEMA-PASSWORD
- DB sysユーザー・パスワード: REPLACE-WITH-SYS-PASSWORD
- ドメイン名: soainfra
- ドメイン・ネームスペース: soans
- シークレット名: soainfra-rcu-credentials
cd ${WORKDIR}/create-rcu-credentials ./create-rcu-credentials.sh \ -u SOA1 \ -p REPLACE-WITH-SCHEMA-PASSWORD \ -a sys \ -q REPLACE-WITH-SYS-PASSWORD \ -d soainfra \ -n soans \ -s soainfra-rcu-credentials
これで、Oracle SOA Suiteドメインの作成を開始する準備ができました。
- ドメインと同じKubernetesネームスペースで、ドメインのKubernetesシークレットを作成します。この例では、ユーザー名はweblogic、パスワードはWelcome1、ネームスペースはsoansです:
- データベースの永続性に使用するディレクトリを作成します。
- Oracle Database GitHubリポジトリをクローニングします:
- Oracle SOA Suiteドメインをホストできるネームスペースを作成します。ドメインを管理するには、ネームスペースに
- Oracle SOA Suiteドメインを作成します。
- Oracle SOA Suiteドメイン・デプロイメントのサンプル・スクリプトは、
${WORKDIR}/create-soa-domain/domain-home-on-pv
にあります。create-domain-inputs.yaml
(またはそのコピー)を編集して、ドメインの詳細を指定する必要があります。create-domain-inputs.yaml
をドメイン作成の次の値で更新します:domainType
:soaosb
initialManagedServerReplicas
:1
cd ${WORKDIR}/create-soa-domain/domain-home-on-pv/ cp create-domain-inputs.yaml create-domain-inputs.yaml.orig sed -i -e "s:domainType\: soa:domainType\: soaosb:g" create-domain-inputs.yaml sed -i -e "s:initialManagedServerReplicas\: 2:initialManagedServerReplicas\: 1:g" create-domain-inputs.yaml sed -i -e "s:image\: soasuite\:release-version:image\: container-registry.oracle.com/middleware/soasuite\:14.1.2.0-<17 or 21>-<ol8 or ol9>-<tag>:g" create-domain-inputs.yaml
create-domain.sh
スクリプトを実行して、ドメインを作成します:cd ${WORKDIR}/create-soa-domain/domain-home-on-pv/ ./create-domain.sh -i create-domain-inputs.yaml -o output
- Kubernetesドメイン・オブジェクトを作成します:
create-domain.sh
が成功すると、output/weblogic-domains/soainfra/domain.yaml
が生成され、これを使用してKubernetesリソース・ドメインを作成し、ドメインおよびサーバーを起動できます:cd ${WORKDIR}/create-soa-domain/domain-home-on-pv kubectl create -f output/weblogic-domains/soainfra/domain.yaml
soainfra
という名前のKubernetesドメイン・オブジェクトが作成されていることを確認します:kubectl get domain -n soans NAME AGE soainfra 3m18s
- ドメインを作成すると、イントロスペクト・ポッドが作成されます。これにより、ドメイン・ホームが検査され、
soainfra-adminserver
ポッドが起動されます。soainfra-adminserver
ポッドが正常に起動すると、管理対象サーバー・ポッドがパラレルで起動されます。soans
ネームスペースで、ドメイン作成のステータスを確認します:kubectl get pods -n soans -w
- Oracle SOA Suiteドメイン・サーバーのポッドおよびサービスが作成され、準備完了状態であることを確認します:
kubectl get all -n soans
- Oracle SOA Suiteドメイン・デプロイメントのサンプル・スクリプトは、
- Oracle SOA Suiteドメイン・サービスにアクセスするようにTraefikを構成します。
- Oracle SOA Suiteドメイン・ネームスペース(
soans
)で作成されたイングレスを管理するようにTraefikを構成します。helm upgrade traefik traefik/traefik \ --reuse-values \ --namespace traefik \ --set "kubernetes.namespaces={traefik,soans}" \ --wait
- サンプルのHelmチャートを使用して、ドメイン・ネームスペースにドメインのイングレスを作成します:
cd ${WORKDIR} export LOADBALANCER_HOSTNAME=$(hostname -f) helm install soa-traefik-ingress charts/ingress-per-domain \ --namespace soans \ --values charts/ingress-per-domain/values.yaml \ --set "traefik.hostname=${LOADBALANCER_HOSTNAME}" \ --set domainType=soaosb
- ドメインごとに作成されたイングレスの詳細を確認します:
kubectl describe ingress soainfra-traefik -n soans
- Oracle SOA Suiteドメイン・ネームスペース(
- Oracle SOA SuiteドメインURLにアクセスできることを確認します。
- 環境の
LOADBALANCER_HOSTNAME
を取得します:export LOADBALANCER_HOSTNAME=$(hostname -f)
- ドメイン・タイプ
soaosb
のOracle SOA Suiteドメインで次のURLが使用可能であることを確認します:資格証明
ユーザー名: weblogic
パスワード: Welcome1
http://${LOADBALANCER_HOSTNAME}:30305/em http://${LOADBALANCER_HOSTNAME}:30305/servicebus http://${LOADBALANCER_HOSTNAME}:30305/soa-infra http://${LOADBALANCER_HOSTNAME}:30305/soa/composer http://${LOADBALANCER_HOSTNAME}:30305/integration/worklistapp http://${LOADBALANCER_HOSTNAME}:30305/ess http://${LOADBALANCER_HOSTNAME}:30305/EssHealthCheck
- 環境の