7.4.1 YAMLファイルを使用したOUDのデプロイ

YAMLファイルを使用してOracle Unified Directory (OUD)をデプロイするには:
  1. $WORKDIR/kubernetes/helm14cディレクトリに移動します:
    cd $WORKDIR/kubernetes/helm14c
  2. 次のようにoud-ds-rs-values-override.yamlを作成します:
    image:
      repository: <image_location>
      tag: <image_tag>
      pullPolicy: IfNotPresent
    imagePullSecrets:
      - name: orclcred
    oudConfig:
     # memory, cpu parameters for both requests and limits for oud instances
      resources:
        limits:
          cpu: "1"
          memory: "4Gi"
        requests:
          cpu: "500m" 
          memory: "4Gi"
      rootUserPassword: <password>
      sampleData: "200"
    persistence:
      type: filesystem
      filesystem:
        hostPath:
          path: <persistent_volume>/oud_user_projects
    cronJob:
      kubectlImage:
        repository: bitnami/kubectl
        tag: <version>
        pullPolicy: IfNotPresent
     
      imagePullSecrets:
        - name: dockercred
    例:
    image:
      repository: container-registry.oracle.com/middleware/oud_cpu
      tag: 14.1.2.1.0-jdk17-ol8-<YYMMDD>
      pullPolicy: IfNotPresent
    imagePullSecrets:
      - name: orclcred
    oudConfig:
     # memory, cpu parameters for both requests and limits for oud instances
      resources:
        limits:
          cpu: "1"
          memory: "8Gi"
        requests:
          cpu: "500m" 
          memory: "4Gi"
      rootUserPassword: <password>
      sampleData: "200"
    persistence:
      type: filesystem
      filesystem:
        hostPath:
          path: /nfs_volumes/oudpv/oud_user_projects
    cronJob:
      kubectlImage:
        repository: bitnami/kubectl
        tag: 1.30.3
        pullPolicy: IfNotPresent
     
      imagePullSecrets:
        - name: dockercred
    次の注意事項があります:
    • <password>は該当するパスワードに置き換えてください。
    • sampleData: "200"は、200のサンプル・ユーザーをデフォルトのbaseDN dc=example,dc=comにロードします。サンプル・データが必要ない場合は、このエントリを削除します。sampleData1,000,000ユーザー以上に設定されている場合、dsreplicationで不整合が発生しないように、次のエントリをyamlファイルに追加する必要があります:
      deploymentConfig:
        startupTime: 720
        period: 120
        timeout: 60
    • kubectlImage: tag:<version>は、Kubernetesバージョン(kubectl version)と同じバージョンに設定する必要があります。たとえば、Kubernetesバージョンが1.30.3の場合、1.30.3に設定します。
    • OUDコンテナ・イメージにOracle Container Registryまたは独自のコンテナ・レジストリを使用しない場合、次を削除できます:
      imagePullSecrets:
        - name: orclcred
    • bitnami/kubectlやbusyboxなどの外部イメージをプルするためのインターネットへのアクセス権がクラスタにない場合は、ローカル・コンテナ・レジストリにイメージをロードする必要があります。その後、次を設定する必要があります:
      cronJob:
        kubectlImage:
          repository: container-registry.example.com/bitnami/kubectl
          tag: 1.30.3
          pullPolicy: IfNotPresent
      	   
      busybox:
        image: container-registry.example.com/busybox 
    • 永続ボリュームにNFSを使用する場合、次のようにpersistenceセクションを変更します:

      ノート:

      NFSを使用する場合は、ネットワーク・ストレージを許可する環境にデフォルトのKubernetesストレージ・クラスが定義されていることを確認する必要があります。ストレージ・クラスの詳細は、「Storage Classes」を参照してください。
      persistence:
        type: networkstorage
        networkstorage:
          nfs: 
            path: <persistent_volume>/oud_user_projects
            server: <NFS IP address>
        # if true, it will create the storageclass. if value is false, please provide existing storage class (storageClass) to be used.
        storageClassCreate: true
        storageClass: oud-sc
        # if storageClassCreate is true, please provide the custom provisioner if any to use. If you do not have a custom provisioner, delete this line, and it will use the default class kubernetes.io/is-default-class.
        provisioner:  kubernetes.io/is-default-class
      次の注意事項があります:
      • 独自のストレージ・クラスを作成する場合、storageClassCreate: trueを設定します。storageClassCreate: trueの場合、storageClassを任意の値に設定し、provisionerをクラウド・ベンダーでサポートされているプロビジョナに設定することをお薦めします。
      • ネットワーク・ストレージをサポートする既存のstorageClassがある場合、storageClassCreate: falseを設定し、storageClassを"kubectl get storageclass"で返されるNAME値に設定します。provisionerは無視できます。
    • 永続ボリュームにブロック・デバイス・ストレージを使用する場合、次のようにpersistenceセクションを変更します:

      ノート:

      ブロック・デバイスを使用する場合は、動的ストレージを許可する環境にデフォルトのKubernetesストレージ・クラスが定義されていることを確認する必要があります。各ベンダーには独自のストレージ・プロバイダがありますが、ストレージを動的に割り当てられるように構成されていない場合があります。ストレージ・クラスの詳細は、「Storage Classes」を参照してください。
      persistence:
        type: blockstorage
        # Specify Accessmode ReadWriteMany for NFS and for block ReadWriteOnce
        accessMode: ReadWriteOnce
        # if true, it will create the storageclass. if value is false, please provide existing storage class (storageClass) to be used.
        storageClassCreate: true
        storageClass: oud-sc
        # if storageClassCreate is true, please provide the custom provisioner if any to use or else it will use default.
        provisioner:  oracle.com/oci
      次の注意事項があります:
      • 独自のストレージ・クラスを作成する場合、storageClassCreate: trueを設定します。storageClassCreate: trueの場合、storageClassを任意の値に設定し、provisionerをクラウド・ベンダーでサポートされているプロビジョナに設定することをお薦めします。
      • 動的ストレージをサポートする既存のstorageClassがある場合、storageClassCreate: falseを設定し、storageClassを"kubectl get storageclass"で返されるNAME値に設定します。provisionerは無視できます。
    • resourceslimitsおよびrequestsについては、表示されているCPUおよびメモリー値の例は開発環境専用です。エンタープライズ・デプロイメントの場合は、『Kubernetesクラスタ内のOracle Identity and Access Managementのためのエンタープライズ・デプロイメント・ガイド』でパフォーマンスの推奨事項およびサイズ設定の要件を確認してください。

      ノート:

      CPUリソースの制限およびリクエストは、CPU単位で測定されます。Kubernetesの1つのCPUは、クラウド・プロバイダの場合は1つのvCPU/コアに、ベアメタルIntelプロセッサの場合は1つのハイパースレッドに相当します。CPU属性のm接尾辞は、「ミリCPU」を示しているため、500mはCPUの50%です。メモリーは様々な単位で表すことができます。1 Miは1 IEC単位のメガバイト(1024^2)で、1 Giは1 IEC単位のギガバイト(1024^3)です。詳細は、「ポッドおよびコンテナのリソース管理」「コンテナおよびポッドへのメモリー・リソースの割当て」および「コンテナおよびポッドへのCPUリソースの割当て」を参照してください

      ノート:

      前述のパラメータは、Kubernetes Horizontal Pod Autoscaler (HPA)でも利用されます。HPAの詳細は、「Kubernetes Horizontal Pod Autoscaler」を参照してください。
    • OUDを他のOracleコンポーネントと統合する予定の場合、oudConfig:セクションで次を指定する必要があります:
        integration: <Integration option>
      例:
      oudConfig:
        etc...
        integration: <Integration option>
    • 保証レプリケーションを有効にする場合、「保証レプリケーションの有効化(オプション)」を参照してください。
    • 前述の例は、オーバーライドyamlファイルで渡すことができるすべてのパラメータおよび環境変数の完全なリストではありません。詳細は、「oud-ds-rs Helmチャートの構成パラメータ」および「oud-ds-rs Helmチャートで使用される環境変数」を参照してください。
  3. 次のコマンドを実行して、OUDをデプロイします:
    helm install --namespace <namespace> \
    --values oud-ds-rs-values-override.yaml \
    <release_name> oud-ds-rs
    例:
    helm install --namespace oudns \
    --values oud-ds-rs-values-override.yaml \
    oud-ds-rs oud-ds-rs
    出力は「Helmコマンド出力」に示されているようになります。
  4. 「OUDデプロイメントの確認」および「OUD保証レプリケーション・ステータスの確認」に従って、OUDデプロイメントを確認します。