# Dynamic Engine環境におけるKubernetesリソースのマウントに関するトラブルシューティング

この診断セクションは、Dynamic Engine環境でKubernetesリソース(ConfigMap、Secret、ボリューム、PersistentVolumeClaim、securityContext)をマウントする際によくある問題を特定し、解決するために役立ちます。このセクションでは、発生したエラーのパターンを特定し、適切な解決策のトピックへと導きます。

## 一般的なエラーパターンと解決策

次の表は、エラーの種類、診断に必要なアクション、対応するDynamic Engineのカスタマイズに関するトピックへのリンクを示しています。

| エラータイプ | 操作 | 関連トピック |
| --- | --- | --- |
| CreateContainerConfigError | マウントされたSecretまたはConfigMapとadditionalSpecのキーの整合性を確認します。 | [Kubernetes SecretをDynamic Engineコンテナのボリュームとしてマウントする](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-secrets-as-volumes "Secretを環境変数として使用する代わりに、コンテナのファイルシステムにファイルとしてマウントすることで、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクが設定ファイル内の認証情報にアクセスできるようになります。")、[Kubernetes Secretからの環境変数の注入](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/injecting-sensitive-data-from-kubernetes-secrets "Kubernetes Secretから機密データ(パスワード、APIキー、トークンなど)を環境変数としてジョブ(データ統合、ビッグデータ、データサービス)およびルートタスクに注入することで、資格情報を簡単かつ安全に使用できるようにします。")、[ConfigMapからの環境変数の注入](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/injecting-environment-variables-from-configmaps "Kubernetes ConfigMapを使用して、機密性の低い構成情報(APIエンドポイント、機能フラグ、アプリケーション設定など)を環境変数として、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクに提供します。") |
| ジョブが作成されない | 宣言されたボリュームまたはPVCとadditionalSpecのキーの整合性を確認します | [Dynamic Engineでの永続ストレージ用のKubernetes PersistentVolumeClaimsのマウント](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-persistentvolumeclaims "PersistentVolumeClaimsを使用して永続ストレージボリュームをコンテナにマウントすることで、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクで、状態を保持したデータアクセス、複数ポッド間でのデータ共有、ポッド再起動後の永続ストレージ利用ができるようになります。") |
| securityContextエラー | <ul> <li>コンテナイメージのUID/GID値が有効であることを確認します。</li> <li>ポッドイベントで<span>securityContext</span>エラーを確認します。</li> <li><span>runAsNonRoot: true</span>がコンテナイメージと互換性があることを確認します</li> </ul> | [Dynamic Engine環境で実行されるタスクコンテナのsecurityContextの設定](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/configuring-security-context-in-dynamic-engine "デフォルトのコンテナsecurityContextを上書きして、特定のユーザーIDとグループIDでタスクを実行します。これにより、きめ細かな権限制御が可能になり、セキュリティ体制が強化され、異なるユーザーIDやグループIDのためにコンテナイメージを再構築することなく、コンプライアンス要件を満たすことができます。") |
| 環境変数が表示されない | <ul> <li>ConfigMap/Secretが存在することを確認します。<span>kubectl get configmap/secret -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>。</li> <li>ポッドの環境を確認します。<span>kubectl exec &lt;pod-name&gt; -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID -- env</span>。</li> <li>Helm値を確認します</li> </ul> | [Kubernetes Secretからの環境変数の注入](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/injecting-sensitive-data-from-kubernetes-secrets "Kubernetes Secretから機密データ(パスワード、APIキー、トークンなど)を環境変数としてジョブ(データ統合、ビッグデータ、データサービス)およびルートタスクに注入することで、資格情報を簡単かつ安全に使用できるようにします。") または [ConfigMapからの環境変数の注入](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/injecting-environment-variables-from-configmaps "Kubernetes ConfigMapを使用して、機密性の低い構成情報(APIエンドポイント、機能フラグ、アプリケーション設定など)を環境変数として、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクに提供します。") |
| ボリュームがマウントされない | <ul> <li>Secretが存在することを確認します。<span>kubectl get secret -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>。</li> <li>PVCステータスを確認します。<span>kubectl get pvc -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>。</li> <li>ポッドイベントを検査します。<span>kubectl describe pod &lt;pod-name&gt; -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span></li> </ul> | [Kubernetes SecretをDynamic Engineコンテナのボリュームとしてマウントする](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-secrets-as-volumes "Secretを環境変数として使用する代わりに、コンテナのファイルシステムにファイルとしてマウントすることで、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクが設定ファイル内の認証情報にアクセスできるようになります。") または [Dynamic Engineでの永続ストレージ用のKubernetes PersistentVolumeClaimsのマウント](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-persistentvolumeclaims "PersistentVolumeClaimsを使用して永続ストレージボリュームをコンテナにマウントすることで、データ統合タスク(ビッグデータを含む)、データサービス、ルートタスクで、状態を保持したデータアクセス、複数ポッド間でのデータ共有、ポッド再起動後の永続ストレージ利用ができるようになります。") |

## 次のステップ

このセクションで問題を特定した後、次を確認してください。

* 前提条件について、[Dynamic Engine環境でのカスタムKubernetesリソースのマウント](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/custom-kubernetes-resource-mounting "Kubernetesリソースをマウントすることで、Dynamic Engine環境をカスタマイズできます。機密性のない設定にはConfigMap、認証情報にはSecret、ファイルや証明書にはボリューム、永続ストレージにはPersistentVolumeClaim、ユーザー権限の管理にはsecurityContextを使用します。")セクションを確認してください。
* ConfigMap、Secret、ボリューム、securityContextの詳細については、[Kubernetesドキュメント](https://kubernetes.io/docs/concepts/configuration/)を参照してください。
* Kubernetesの一般的なトラブルシューティングパターンとkubectlコマンドリファレンスについては、[Kubernetes デバッグガイド](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/)を参照してください。