# Dynamic Engine向けにFilestoreストレージを使用してGKEをセットアップする

GKEクラスターの準備が整ったら、Filestoreをバックエンドとする共有ストレージを構成し、Dynamic Engine環境でデプロイします。

Dynamic Engineにおいてこの共有ストレージが必要となるのは、エンジンに対してconfiguration.persistence.enabled=trueが設定されている場合のみです。それ以外の場合、ストレージの使用は任意であり、Talend Management Consoleタスクで永続的なストレージが必要になる場合にのみ必要となります。

## 始める前に

* Dynamic Engineデプロイメント用に設定されたGKEクラスター。プラットフォーム固有の前提条件、クラスター設定、クラスタへのアクセス手順については、[Dynamic EngineデプロイメントでのGoogle Kubernetes Engine (GKE)の設定](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/deploying-dynamic-engine-on-gke "Dynamic Engineは、Google Cloudネイティブのストレージシステムを使用して、Google Kubernetes Engine (GKE)上にデプロイできます。")を参照してください。
* 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チャートバージョンがインストールされます。

## このタスクについて

情報メモ重要: GKE Autopilotのデプロイの場合は、これらの手順を実行する前に、まず[マネージドKubernetes運用モード](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/prerequisites-to-use-dynamic-engines)からマネージドモード設定セットを適用することを推奨します。

この手順では、Filestoreを利用した共有ストレージを構成し、GKEクラスターにカスタマイズされたDynamic Engine環境をデプロイする方法について説明します。

## 手順

1. Dynamic Engine用にReadWriteMany GKEストレージクラスを設定します。

   Dynamic Engine専用のReadWriteManyストレージクラスを作成し、後の手順でその名前をdefaultStorageClassNameとして使用します。例:
   ```
   apiVersion: storage.k8s.io/v1
   kind: StorageClass
   metadata:
     name: dyn-engine
   provisioner: filestore.csi.storage.gke.io
   volumeBindingMode: WaitForFirstConsumer
   allowVolumeExpansion: true
   reclaimPolicy: Delete
   parameters:
     tier: <filestore-tier>
     network: <name-of-configured-network>
   ```

   この例では、dyn-engineというストレージクラスを作成します。このストレージクラスに対して、プロビジョナーfilestore.csi.storage.gke.ioが、それぞれティアフィールドとネットワークフィールドで指定された特定のネットワークに特定のタイプの永続ボリュームを作成するように構成されます。
   * Filestoreのティアでサポートされている値については、[GKEのティア](https://cloud.google.com/filestore/docs/reference/rest/v1/Tier)に関する説明を参照してください。
   * 設定済みのGKEネットワーク名を使用してください。カスタムネットワークが設定されていない場合は、デフォルトを使用してください。networkフィールドを削除すると、デフォルトが使用されます。

   情報メモヒント: Dynamic Engine専用のストレージクラスが推奨されますが、組織のポリシーに応じて、GKEによって提供されるデフォルトのストレージクラスを使用することもできます。これらのデフォルトのストレージクラスのリストについては、「[自動的にインストールされるGKEストレージクラス](https://docs.cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/filestore-csi-driver#storage-class)」を参照してください。
2. Dynamic Engineインスタンスとその環境をデプロイします。

   情報メモ注: 以下の手順は、統合Dynamic Engine環境のデプロイパターンを示しています。すべてのプラットフォーム(AWS、GKE、AKS、オンプレミスKubernetes)におけるカスタムストレージクラスの設定の詳細な手順については、[Dynamic Engine環境サービス専用のストレージクラスをプロビジョニング](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/deploy-dynamic-engine-with-specific-storageclass "デフォルトのKubernetesストレージクラスを使用する代わりに、Dynamic Engine環境サービス専用のストレージクラスを設定します。")を参照してください。
   1. このコマンドを実行してエンジンインスタンスをデプロイします:
      ```
      helm upgrade --install dynamic-engine \
        -f $DYNAMIC_ENGINE_ID-helm-values/$DYNAMIC_ENGINE_ID-values.yaml \
        oci://ghcr.io/talend/helm/dynamic-engine
      ```

      これはデフォルトのデプロイメントです。このコマンドは、Dynamic Engineインスタンスがデプロイされているかどうかに応じて、インスタンスをアップグレードまたはインストールします。$DYNAMIC\_ENGINE\_IDを、Dynamic EngineのID (c-m-sjufu4qyなど)に置換します。
   2. 環境用のカスタムHelm valuesファイルを作成します。
      ## 例
      ```
      cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-gke-values.yaml
      ---
      configuration:
        persistence:
          defaultStorageClassName: dyn-engine
      EOF
      ```

      この例では、以前に作成したストレージクラスdyn-engineをdefaultStorageClassNameの名前として設定します。使用しているDynamic Engine固有のストレージクラスに応じて変更してください。
   3. Dynamic Engine環境用のHelmチャートをデプロイします。
      ```
      helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
        -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
        -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-gke-values.yaml \
        oci://ghcr.io/talend/helm/dynamic-engine-environment \
        --version $DYNAMIC_ENGINE_VERSION
      ```

      このコマンドは、Dynamic Engine環境がデプロイされているかどうかに応じて、環境をアップグレードまたはインストールします。

## タスクの結果

完了すると、Dynamic Engine環境サービスがGKEクラスターにインストールされ、タスクまたはプランを実行できるようになります。

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

デプロイメントに失敗するか、Dynamic Engineサービスの関連付けが解除されると、ステータスは「まだ準備できていません」になります。

## 次のタスク

デプロイメントが成功したら、標準エンジンの場合と同様に、Dynamic Engine環境にタスクを追加できます。詳細は、[Dynamic Engine環境にジョブタスクを追加](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/adding-task-in-dynamic-engine-environment "ジョブタスクとは、Talend Studioから公開されたジョブアーティファクトを含んでいる実行可能な統合プロセスのことです。")をご覧ください。