# Dynamic Engine環境サービス専用のストレージクラスをプロビジョニング

デフォルトのKubernetesストレージクラスを使用する代わりに、Dynamic Engine環境サービス専用のストレージクラスを設定します。

ストレージクラスのデプロイ設定については、このトピックを標準的な手順として使用してください。

情報メモ重要: Dynamic Engine環境サービス用のカスタムストレージクラスは、エンジンのデプロイ中のみ設定することが許可されています。

Dynamic Engine環境サービスには、ReadWriteManyアクセスモードをサポートするストレージクラスが必要です。互換性のあるプラットフォームおよびストレージプロバイダーの詳細は、[サポートされているCSIプロバイダー](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/prerequisites-to-use-dynamic-engines)をご覧ください。

事前確認事項については、[Dynamic Engineを使用するための前提条件](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/prerequisites-to-use-dynamic-engines "Dynamic Engineをデプロイする前に、アクセス権限、Kubernetesとの互換性、およびデプロイモードの要件(マネージドKubernetesモードを含む)を確認してください。")を参照してください。

## 始める前に

* dynamic-engine-crdカスタムリソース定義は、oci://ghcr.io/talend/helm/dynamic-engine-crd Helmチャートを使用してインストールされている必要があります。インストールされていない場合は、次のコマンドを実行してインストールしてください。
  1. 使用するチャートのバージョンを見つけます。

     * 次のHelmコマンドを実行します:
       ```
       helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
       ```
     * Talend Management Consoleから直接バージョンを見るか、自分のDynamic Engineバージョンに含まれているチャートバージョンの[Dynamic Engine変更ログ](https://help.qlik.com/talend/en-US/dynamic-engine-changelog/Cloud)をチェックしてください。
     * [Dynamic Engineバージョンエンドポイント](https://talend.qlik.dev/apis/dynamic-engine/2021-03/#operation_return-all-supported-dynamic-engine-versions)へのAPIコールを使用します。

  2. 次のコマンドを実行し、目的のバージョンのHelmチャートをインストールします。

     ```
     helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
     ```

     &lt;helm\_chart\_version&gt;を、お使いのDynamic Engineバージョンでサポートされているチャートのバージョンに置換します。

     バージョンを指定しないと、利用可能な最新のdynamic-engine-crdチャートバージョンがインストールされます。
* Dynamic Engineがデプロイされている必要があります。デプロイされていない場合は、このコマンドを実行してデプロイしてください。
  ```
  helm install dynamic-engine -f <engine-id>-helm-values/<engine-id>-values.yaml oci://ghcr.io/talend/helm/dynamic-engine 
  ```

  現在のカスタマイズはDynamic Engine環境側でのみ必要であるため、これがデフォルトのデプロイメントです。このため、Dynamic Engineインスタンスにはカスタマイズは設定されません。

## 手順

1. Kubernetesマシンで、ダウンロードしておいたHelmデプロイメントのzipファイルを解凍します。
2. 使用するストレージクラスがクラスターに存在することを確認します。
   ```
   kubectl get storageclass <storage-class-resource-name>
   ```

   たとえば、&lt;storage-class-resource-name&gt;を、実際に使用するリソース名であるdyn-engineに置換します。このストレージクラスリソースが存在しない場合は、次のエラーメッセージが返されます:
   ```
   Error from server (NotFound): storageclasses.storage.k8s.io "dyn-engine" not found
   ```

   このストレージクラスリソースを作成する場合は、Kubernetes管理者に連絡してください。ReadWriteManyアクセスモードをサポートしている必要があります。
3. Dynamic Engine環境用のストレージクラスを指定する、カスタムvaluesファイルを作成します。
   ```
   cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-storageclass-values.yaml
   configuration:
     persistence:
       defaultStorageClassName: <storage-class-resource-name>
   EOF                               
   ```

   $DYNAMIC\_ENGINE\_ENVIRONMENT\_IDには、デプロイする環境のIDを使用します。&lt;storage-class-resource-name&gt;には、ストレージクラスのリソース名を使用します。
4. カスタムのストレージクラスを使って、Dynamic Engine環境チャートをデプロイします。
   ```
   helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
     -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml \
     -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-storageclass-values.yaml \
     oci://ghcr.io/talend/helm/dynamic-engine-environment \
     --version $DYNAMIC_ENGINE_VERSION
   ```
5. Dynamic Engine環境が整い、永続的なボリュームがプロビジョニングされていることを確認します。
   1. 環境のステータスをチェックします:
      ```
      kubectl get dynamicengineenvs.apps.qlik.com -n <environment-namespace>
      ```

      ステータスが、[Running] (実行中)または[Ready] (準備完了)と表示されます。
   2. Dynamic Engineサービス用に永続的なボリュームが作成されていることをチェックします:
      ```
      kubectl get pvc -n <environment-namespace>
      ```

      各サービスには、バインドされた永続的なボリュームが必要です。

## タスクの結果

正常に完了すると、Dynamic Engine環境サービスがクラスターにインストールされ、指定されたストレージクラスが使用されます。Dynamic Engineにも接続します。

Talend Management Consoleではこの環境のステータスが[Ready] (準備完了)になり、タスクまたはプランを実行する準備ができていることが確定されます。