コンポジット・デプロイメント・コンテナの作成

Kubernetesポッドを作成する前に、Oracle SOA Suite Dockerイメージがノードで使用できることを確認するか、またはポッドが作成されたホストでDockerイメージをプルできるようにイメージ・プル・シークレットを作成できます。

  1. Kubernetesポッドによってイメージsoasuite:release-versionをプルするイメージ・プル・シークレットを作成します:
    kubectl create secret docker-registry image-secret -n soans --docker-server=your-registry.com --docker-username=xxxxxx --docker-password=xxxxxxx  --docker-email=my@company.com
  2. /share/soa-deployに配置されたビルドおよびデプロイ用のサンプル・コンポジットを使用して、PersistentVolumeおよびPersistentVolumeClaim (soadeploy-pv.yamlおよびsoadeploy-pvc.yaml)を作成します。
    1. 提供されているサンプル(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/soa-deploy"
      
    2. YAMLを適用します:
      kubectl apply -f soadeploy-pv.yaml
      
    3. 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      
      
    4. YAMLを適用します:
      kubectl apply -f soadeploy-pvc.yaml
  3. soadeploy.yamlを使用してコンポジット・デプロイ・ポッドを作成し、ポッド内のコンポジットを/compositesにマウントします:
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: soadeploy
      name: soadeploy
      namespace: soans
    spec:
      imagePullSecrets:
      - name: image-secret
      containers:
      - image: soasuite:release-version
        name: soadeploy
        env:
        - name: M2_HOME
          value: /u01/oracle/oracle_common/modules/thirdparty/apache-maven_bundle/3.9.4.0.0/apache-maven-3.9.4
        command: ["/bin/bash", "-c", "echo 'export PATH=$PATH:$M2_HOME/bin' >> $HOME/.bashrc; sleep infinity"]
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: mycomposite
          mountPath: /composites
      volumes:
      - name: mycomposite
        persistentVolumeClaim:
           claimName: soadeploy-pvc
    
  4. ポッドを作成します:
    kubectl apply -f soadeploy.yaml
  5. Kubernetesポッドがデプロイされたら、ポッドにexecして、Maven/Antベースのビルドおよびデプロイを実行します:
    kubectl exec -it -n soans soadeploy -- bash