最小イメージを使用したDynamic Engineのデプロイ
Dynamic Engineデプロイメントの攻撃対象領域とイメージサイズを削減するために、すべてのDynamic Engineサービスをdistrolessコンテナイメージに、Talend Management Consoleタスクイメージを極めて軽量なOSを採用した最小限のコンテナイメージに切り替えてください。
Helm valuesファイルでglobal.profile: minimalを設定すると、すべてのDynamic Engineサービスイメージがdistrolessバリアントに切り替わります。完了後、インフラストラクチャサービスイメージには-distrolessタグサフィックスが使用され、データ統合タスクおよびデータサービスまたはルートのイメージには-minimalタグサフィックスが使用されます。
Distrolessイメージにはシェルやパッケージマネージャーが含まれていないため、ファイルシステムのフットプリントが削減され、潜在的なエクスプロイトに対してさらされる攻撃対象領域が限定されます。
この構成は、Amazon EKS Auto ModeやGKE Autopilotを含む、マネージドKubernetesモードで推奨されます。
distrolessイメージのサポートは、Dynamic Engine v1.6.0で導入されました。
このタスクについて
マネージドKubernetesモード (Amazon EKS Auto ModeおよびGKE Autopilot) では、PodDisruptionBudgetの設定およびconfiguration.persistence.enabled=falseと組み合わせて、この設定を使用してください。
ビッグデータジョブ(Spark BatchおよびSpark Streaming)は、最小イメージとは互換性がありません。
global.profile: minimalを使用する場合、各ビッグデータジョブの対応する実行プロファイルに次の処理引数を追加して、設定を上書きしてください。
-K8S:ImageProfile=standardこの実行プロファイルパラメーターは、個々のタスクレベルでglobal.profileを上書きします。そのため、ビッグデータジョブのコンテナは標準のフルベースイメージを使用し、他のタスクは最小イメージを使用することになります。実行プロファイルの作成および編集に関する情報については、Dynamic Engine環境タスクの実行プロファイルを管理を参照してください。
手順
タスクの結果
すべてのDynamic Engineサービスポッドが再起動し、distrolessイメージのバリアントをプルします。次のコマンドで、アクティブなプロファイルを確認できます。
helm get values dynamic-engine-$DYNAMIC_ENGINE_ID --output json | jq -r '.global.profile'
helm get values dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID --output json | jq -r '.global.profile'どちらのコマンドも最小を返すはずです。
次のタスク
タスクにビッグデータジョブが含まれる場合は、対応する実行プロファイルを作成または更新し、-K8S:ImageProfile=standardを含めるようにします。Dynamic Engine環境タスクの実行プロファイルを管理をご覧ください。