# ハンズオンテスト用にDynamic Engineをminikubeに実装

組織へのデプロイ前に、minikubeクラスター上にDynamic Engineをインストールおよび構成し、ハンズオンテストを実行します。

前提条件:

* Dockerとminikubeがインストールされていること。

* Dockerデーモンが実行されていること。

* Minikubeツールがインストールされ、Dynamic EngineがサポートするKubernetesバージョンを使用するように設定されていること。サポートされるKubernetesバージョンの詳細は、[Kubernetesの仕様](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/prerequisits-to-use-dynamic-engines#anchor-2)をご覧ください。

  詳細は、[minikube installation](https://minikube.sigs.k8s.io/docs/start/)をご覧ください。

* コマンドラインツールのkubectlとhelmがインストールされていること。Helmのバージョンは3.17.2以降である必要があります。

## minikubeでのテスト用にDynamic Engineとその環境を追加する

### 手順

1. Talend Management Consoleの[Processing] (処理)ページに移動し、Dynamic Engineタブを選択して、新しいDynamic Engineを追加します。

   これにより、Dynamic Engineの論理エンティティが作成されます。デプロイメントダイアログはダウンロードせずに閉じます。デプロイ用のzipファイルは、Dynamic Engine環境を割り当てた後にダウンロードします。
2. 引き続き、Talend Management ConsoleでDynamic Engine環境の論理エンティティを作成します。詳細は、[Dynamic Engine環境を追加](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/set-up-dynamic-engine-on-registered-kubernetes-cluster#anchor-3)をご覧ください。
3. [Processing] (処理)ページに戻り、Dynamic Enginesタブを開きます。
4. 以前Talend Management Consoleで作成したDynamic Engineを右クリックします。
5. [Assign environments] (環境を割り当て)をクリックし、環境を割り当てるページを開きます。
6. 作成した環境を選択し、[Assign] (割り当て)をクリックします。
7. Helmのデプロイタイプとバージョンはデフォルトのままにし、[Download (ダウンロード)] をクリックしてデプロイ用のzipファイルを取得します。

   このzipファイルには、エンジン用のHelm valuesファイルと、割り当てられた各環境用のvaluesファイルが含まれており、それぞれのIDに基づいて命名されています。たとえば、IDがc-m-sjufu4qyのDynamic Engineと、IDが67f7d562ffd7c3525a902542の環境が1つある場合、zipファイルには次の内容が含まれます。
   * c-m-sjufu4qy-helm-values/c-m-sjufu4qy-values.yaml
   * c-m-sjufu4qy-helm-values/67f7d562ffd7c3525a902542-values.yaml
8. [Close] (閉じる)をクリックします。

### タスクの結果

Talend Management Console内で、Dynamic Engineおよびその環境が論理エンティティとして作成され、その環境がエンジンに割り当てられます。これにより、デプロイ用のzipファイルがダウンロード可能な状態となり、クラスターへの適用準備が整います。

## minikubeへのDynamic Engineおよびその環境のデプロイ

### 手順

1. お使いのターミナルで次のコマンドを実行し、minikubeインスタンスを起動します。
   ```
   minikube start -p QlikDE --cpus=4 --memory=8000
   ```

   このコマンドはQlikDEという名前のインスタンスを起動し、4つのCPUと8GBのメモリを割り当てます。インスタンスには任意の名前を使用できます。
2. ダウンロードしたファイルを解凍し、dynamic-engine-crd Helmチャートをインストールします。
   ```
   helm install dynamic-engine-crd \
     oci://ghcr.io/talend/helm/dynamic-engine-crd \
     --version ${DYNAMIC_ENGINE_VERSION}
   ```

   &lt;helm\_chart\_version&gt;を、お使いのDynamic Engineバージョンでサポートされているチャートのバージョンに置換します。
3. エンジンインスタンスをデプロイします。
   ```
   helm install dynamic-engine-$DYNAMIC_ENGINE_ID \
     oci://ghcr.io/talend/helm/dynamic-engine \
     --version ${DYNAMIC_ENGINE_VERSION} -f $DYNAMIC_ENGINE_ID-values.yaml
   ```

   $DYNAMIC\_ENGINE\_IDを、Dynamic EngineのID (c-m-sjufu4qyなど)に置換します。
4. 次のコマンドを実行し、エンジンが正常にデプロイされたことを確認します。
   ```
   kubectl get de -A
   ```

   次のような情報が表示されます。
   ```
   NAME                                     VERSION   STATUS    LAST UPDATE
   qlik-dynamic-engine-$DYNAMIC_ENGINE_ID   0.22.0    RUNNING   2m
   ```
5. 次のコマンドを実行し、Helmを使用して環境をデプロイします。
   ```
   helm install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
     oci://ghcr.io/talend/helm/dynamic-engine-environment \
     --version ${DYNAMIC_ENGINE_VERSION} -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml
   ```

   $DYNAMIC\_ENGINE\_ENVIRONMENT\_IDを、Dynamic Engine環境のID (67f7d562ffd7c3525a902542など)に置換します。

   全プロセスにかかる時間は、Minikubeマシンの能力に応じて3～4分です。次のコマンドで進捗を確認できます:
   * ```
     kubectl wait --for=condition=Ready pod -A -l 'app.qlik.com/part-of' --timeout=10m
     ```

     このコマンドは、環境に関連するすべてのポッドがセットアップされ、正常に稼働していることを確認するものです。完了すると、次のようなメッセージが返されます。

     ```
     pod/dynamic-engine-operator-68478645bb-wn7x9 condition met
     pod/dpe-di-job-deployer-86dc4ddb7f-7v9lz condition met
     pod/dpe-di-job-restore-orphans-6d4f8968d4-g75dk condition met
     pod/dpe-engine-config-manager-6bc9fb44-4z6nh condition met
     pod/dpe-job-controller-7c74467648-p7k8c condition met
     pod/dpe-log-collector-7fc4fb664d-scdf9 condition met
     ```

     他のネームスペースで実行されているポッドもメッセージにリストされます。例: dynamic-engine-operator-68478645bb-wn7x9。

   * ```
     kubectl get namespaces
     ```

     このコマンドはすべてのネームスペースをリスト表示し、qlik-processing-env-66f2c0bb3e063d3518122259 など、関連する全サービスをグループ化した Dynamic Engine 環境のネームスペースを特定できます。

   * ```
     kubectl get pods --namespace qlik-processing-env-66f2c0bb3e063d3518122259
     ```

     このコマンドは、その環境内で実行中のすべてのサービスを一覧表示します。すべてのステータスが[Running] (実行中)と表示されれば、Dynamic Engine環境のインストールは完了です。Talend Management Consoleではこの環境のステータスが[Ready] (準備完了)になり、タスクまたはプランを実行する準備ができたことが示されます。

### タスクの結果

このDynamic Engine環境でタスクを実行するには、[Dynamic Engine環境でのタスク管理](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/managing-tasks-in-dynamic-engine-environments-in-tmc)を参照してください。

### 次のタスク

minikubeインスタンスを削除するには、次のコマンドを実行します。

```
minikube delete --profile QlikDE
```

これにより、minikubeインスタンスと関連するすべてのファイルが削除されます。

* Dynamic Engineログの詳細については、[デプロイまたはアップグレード時にログとメトリクスの転送を無効化](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/deploy-environment-with-disabled-logs-metrics)を参照してください。
* Dynamic Engineの既知の制限については、[既知の問題](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/known-limitations-dynamic-engine)をご覧ください。
* Dynamic Engineの完全なガイドについては、[Dynamic Engine設定ガイド](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/management-console-dynamic-engine-architecture)をご覧ください。このガイドでは、Dynamic Engineとその環境を本番環境用に作成およびデプロイする方法を説明しています。