チュートリアル: Amazon EKSリソースで単一ノードのジョブ定義を作成する - AWS Batch

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

チュートリアル: Amazon EKSリソースで単一ノードのジョブ定義を作成する

Amazon Elastic Kubernetes Service (Amazon ) で単一ノードのジョブ定義を作成するには、次のステップを実行しますEKS。

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

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

  3. 左側のナビゲーションペインで ジョブ定義 を選択します。

  4. [Create] (作成) を選択します。

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

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

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

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

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

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

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

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

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

    3. DNS ポリシーでは、次のいずれかを選択します。

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

      • デフォルト – pod は、それが実行されるノードから名前解決設定を継承します。

        注記

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

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

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

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

      重要

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

    5. (オプション) ポッド注釈 で、注釈を追加 を選択し、名前と値のペアを入力します。

      重要

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

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

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

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

      2. イメージ で、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 は単一の名前 ( ubuntuや などmongo) を使用します。

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

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

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

      4. (オプション) コマンドに、Bash or JSON コンテナに渡す コマンド。

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

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

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

        重要

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

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

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

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

        注記

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

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

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

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

      2. 名前 を入力し、そして次にボリュームがマウントされているコンテナにマウントパス] を入力します。SubPath を入力して、ルートではなく参照されるボリューム内のサブパスを指定します。

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

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

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

      注記

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

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

      注記

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

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

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

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

      注記

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

    17. [次のページ] を選択します。

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