Amazon EKS リソースでのシングルノードジョブ定義の作成 - AWS Batch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EKS リソースでのシングルノードジョブ定義の作成

Amazon Elastic Kubernetes Serviceリソースに新しいジョブ定義を作成するには:
  1. AWS Batchコンソールをhttps://console.aws.amazon.com/batch/ で 開きます。

  2. 上部のナビゲーションバーから、使用するAWS リージョンを選択します。

  3. 左側のナビゲーションパネルで、タスク定義 を選択します。

  4. 作成] を選択します。

  5. オーケストレーションタイプ には、Elastic Kubernetes Service (EKS) を選択します。

  6. 名前] に、一意のジョブ定義名を入力します。名前の最大長は 128 文字です。大文字と小文字の英文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。

  7. (オプション) 実行タイムアウト で、タイムアウト値 (秒単位) を入力します。実行タイムアウトは、未完了のジョブが終了するまでの時間です。試行時間がこの秒数を超過すると、試行は停止し、FAILED ステータスに移行します。詳細については、ジョブのタイムアウトを参照してください。最小値は 60 秒です。

  8. (オプション) スケジューリング優先順位 をオンにします。0 ~ 100 の値でスケジューリング優先度を入力します。値が大きいほど、低い値よりも優先されます。

  9. (オプション) タグ を展開し、次にタグを追加] を選択してリソースにタグを追加します。

  10. 次のページ を選択します。

  11. EKS pod プロパティ セクションで:

    1. サービスアカウント名には、podで実行されるプロセスのIDを提供するアカウントを入力します。

    2. ホストネットワーク を有効にしてKubernetespod ネットワークモデルを使用し、受信接続用のリスニングポートを開きます。この設定は送信通信でのみオフにしてください。

    3. (オプション) DNSポリシー で、次のいずれかを選択します:

      • 値なし (null化) — pod は 、Kubernetes 環境からの DNS 設定を無視します。

      • デフォルト — podは、実行されているノードからDNS名前解決を継承します。

        注記

        DNSポリシーが指定されていない場合、Default はデフォルトDNSポリシーではありません。代わりに、ClusterFirst が使用されます。

      • ClusterFirst — 設定されたクラスタドメインサフィックスと一致しないDNS クエリは、ノードから継承されたアップストリームのネームサーバーに転送されます。

      • ClusterFirstWithHostNetホストネットワーク] がオンになっている場合に使用します。

    4. (オプション) ポッドラベル には、ポッドラベルを追加] を選択し、名前と値のペアを入力します。

      重要

      ポッドラベルのプレフィックスにはkubernetes.io/k8s.io/、または batch.amazonaws.com/ を含めることはできません。

    5. 次のページ を選択します。

    6. コンテナの設定 セクションで次の操作を行います。

      1. 名前 に、コンテナの一意の名前を入力します。名前は文字または数字で始まる必要があり、最長63文字まで入力できます。小文字と大文字の英文字、数字、およびハイフン (-) を含めることができます。

      2. Image (イメージ) で、ジョブに使用するDocker イメージを選択します。デフォルトでは、Docker Hubレジストリのイメージを使用できます。repository-url/image:tag で他のリポジトリを指定することもできます。名前の長さは最大255文字です。大文字と小文字の英文字、数字、ハイフン (-)、アンダースコア (_)、コロン (:)、ピリオド (.)、スラッシュ (/)、および数字 (#)を含めることができます。このパラメータは、Docker Remote APIコンテナの作成 セクションにある Image にマッピングされ、IMAGE オプションは docker run にマッピングされます。

        注記

        Docker イメージのアーキテクチャは、スケジュールされているコンピューティングリソースのプロセッサアーキテクチャと一致している必要があります。例えば、Arm ベースの Docker イメージは、Arm ベースのコンピューティングリソースでのみ実行することができます。

        • Amazon ECR Public リポジトリ内のイメージには、完全な registry/repository[:tag] または registry/repository[@digest] 命名規則が使用されます (例えば、public.ecr.aws/registry_alias/my-web-app:latest)。

        • Amazon ECR リポジトリ内のイメージには、完全な registry/repository[:tag] 命名規則が使用されます (例えば、aws_account_id.dkr.ecr.region.amazonaws.com /my-web-app:latest)。

        • Docker Hub の公式リポジトリのイメージでは、1 つの名前 (例: ubuntu または mongo) を使用します。

        • Docker Hub の他のリポジトリのイメージは、組織名で修飾されます (例:amazon/amazon-ecs-agent)。

        • 他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例: quay.io/assemblyline/ubuntu)。

      3. (オプション) イメージプルポリシー では、イメージをプルするタイミングを選択します。

      4. (オプション) コマンド には、コンテナに渡す Bash 又は JSON コマンドを入力します。

      5. (オプション) 引数、コンテナに渡す引数を入力します。引数が指定されていない場合は、コンテナイメージコマンドが使用されます。

    7. (オプション) 名前と値のマッピングとしてジョブ定義にパラメータを追加して、ジョブ定義のデフォルトを上書きできます。パラメータを追加するには:

      1. パラメータ] には、名前と値のペアを入力し、次にパラメータの追加 を選択します。

        重要

        パラメータを追加 を選択した場合は、少なくとも 1つのパラメータを設定するか、パラメータの削除 を選択する必要があります。

    8. 環境設定 セクションで:

      1. vCPU で、コンテナ用に予約する vCPU の数を指定します。このパラメータは、Docker Remote API コンテナの作成セクションの CpuShares にマップされ、また--cpu-shares オプションは docker run にマップされます。各 vCPU は 1,024 個の CPU 配分に相当します。少なくとも 1 つの vCPU を指定する必要があります。

      2. メモリ には、コンテナで使用できるメモリー制限を入力します。コンテナは、ここで指定したメモリを超えようとすると、停止されます。このパラメータは、Docker Remote API コンテナの作成セクションの Memory にマップされ、また--memory オプションは docker run にマップされます。ジョブに対して少なくとも 4 MiB のメモリを指定する必要があります。

        注記

        特定のインスタンスタイプのジョブにメモリを優先順位付けすることで、リソース使用率を最大化できます。詳細については、コンピューティングリソースメモリ管理を参照してください。

    9. (オプション) 環境変数環境変数を追加 を選択し、環境変数を名前と値のペアとして追加します。これらの変数は、コンテナに渡されます。

    10. (オプション) ボリュームマウント では:

      1. ボリュームマウントを追加 を選択します。

      2. 名前 を入力し、そして次にボリュームがマウントされているコンテナにマウントパス] を入力します。

      3. 読み取り専用 を選択すると、ボリュームへの書き込み権限が削除されます。

      4. ボリュームマウントを追加 を選択します。

    11. (オプション)ユーザーとして実行 には、ユーザー ID を入力してコンテナプロセスを実行します。

      注記

      コンテナを実行するには、ユーザー ID がイメージに存在している必要があります。

    12. (オプション)グループとして実行 には、コンテナプロセスのランタイムを実行するグループ ID を入力します。

      注記

      コンテナを実行するには、グループ ID がイメージに存在している必要があります。

    13. (オプション) ホストインスタンスに対する昇格されたアクセス権限 (root ユーザーと同様に) をジョブのコンテナに付与するには、特権付与 を選択します。このパラメータは、Docker Remote API コンテナの作成セクションの Privileged にマップされ、また--privileged オプションは docker run にマップされます。

    14. (オプション) 読み取り専用ルートファイルシステム を有効にして、ルートファイルシステムへの書き込みアクセスを削除します。

    15. (オプション) 非ルートユーザーとして実行するpod をオンにして、 非ルートユーザーとしてのコンテナを実行します。

      注記

      非ルートユーザーとして実行する がオンになっている場合、kubelet は実行時にイメージを検証して、イメージが UID 0 として実行されていないことを確認します。

    16. 次のページ を選択します。

  12. ジョブ定義のレビューについては、設定手順を確認してください。変更する必要がある場合は、Edit] (編集) を選択します。完了したら、ジョブ定義の作成 を選択します。