教學課程:在 Amazon EKS 資源上建立單一節點任務定義 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:在 Amazon EKS 資源上建立單一節點任務定義

請完成下列步驟,以在 Amazon Elastic Kubernetes Service (Amazon EKS) 上建立單一節點任務定義。

若要在 Amazon EKS 資源上建立新的任務定義:
  1. 在 https://https://console.aws.amazon.com/batch/ 開啟 AWS Batch 主控台。

  2. 從頂端導覽列中,選擇要 AWS 區域 使用的 。

  3. 在左側導覽窗格中,選擇任務定義

  4. 選擇 Create (建立)。

  5. 針對協調類型,選擇彈性 Kubernetes Service (EKS)

  6. 針對名稱,輸入任務定義的唯一名稱。名稱的長度上限為 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。

  7. (選用) 針對執行逾時,輸入逾時值 (以秒為單位)。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間,則嘗試會停止並移至 FAILED 狀態。如需詳細資訊,請參閱任務逾時。最小值為 60 秒。

  8. (選用) 開啟排程優先順序。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序高於較低值。

  9. (選用) 展開標籤,然後選擇新增標籤以將標籤新增至資源。

  10. 選擇下一頁

  11. EKS pod 屬性區段中:

    1. 針對服務帳戶名稱,輸入為在 中執行的程序提供身分的帳戶pod。

    2. 開啟主機網路以使用Kubernetespod網路模型,並為傳入連線開啟接聽連接埠。僅針對傳出通訊關閉此設定。

    3. 針對 DNS 政策,選擇下列其中一項:

      • 無值 (空) – pod忽略Kubernetes環境中的 DNS 設定。

      • 預設 – 繼承其執行pod節點的名稱解析組態。

        注意

        如果未指定 DNS 政策,則預設 不是預設 DNS 政策。而是使用 ClusterFirst

      • ClusterFirst – 任何不符合已設定叢集網域尾碼的 DNS 查詢都會轉送到從節點繼承的上游名稱伺服器。

      • ClusterFirstWithHostNet – 如果主機網路已開啟,請使用 。

    4. (選用) 對於 Pod 標籤,選擇新增 Pod 標籤,然後輸入名稱值對。

      重要

      Pod 標籤的字首不能包含 kubernetes.io/k8s.io/batch.amazonaws.com/

    5. (選用) 對於 Pod 註釋,選擇新增註釋,然後輸入名稱/值對。

      重要

      Pod 註釋的字首不能包含 kubernetes.io/k8s.io/batch.amazonaws.com/

    6. 選擇下一頁

    7. 容器組態區段中:

      1. 針對名稱,輸入容器的唯一名稱。名稱必須以字母或數字開頭,長度最多可達 63 個字元。它可以包含大小寫字母、數字和連字號 (-)。

      2. 針對映像,選擇要用於任務的Docker映像。根據預設,Docker Hub 登錄檔中的映像為可用。您也可以用 repository-url/image:tag 指定其他儲存庫。名稱長度上限為 255 個字元。可包含大寫及小寫字母、數字、連字號 (-)、底線 (_)、冒號 (:)、句點 (.)、斜線 (/) 和數字符號 (#)。此參數在 Docker Remote API 的建立容器區段Image中映射至 ,而 參數為 https://docs.docker.com/engine/api/v1.38/ 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 上官方儲存庫中的映像,使用的是單一名稱 (例如,ubuntumongo)。

        • Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如,amazon/amazon-ecs-agent)。

        • 其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如,quay.io/assemblyline/ubuntu)。

      3. (選用) 對於映像提取政策,選擇提取映像的時間。

      4. (選用) 對於命令,輸入要傳遞至容器的 Bash或 JSON命令。

      5. (選用) 針對引數,輸入要傳遞至容器的引數。如果未提供引數,則會使用容器映像命令。

    8. (選用) 您可以將參數新增至任務定義做為名稱值映射,以覆寫任務定義預設值。若要新增參數:

      1. 針對參數,輸入名稱值對,然後選擇新增參數

        重要

        如果您選擇新增參數,您必須設定至少一個參數,或選擇移除參數

    9. 環境組態區段中:

      1. 針對 vCPUs,輸入要預留給容器的 vCPUs 數量。此參數會映射到 Docker Remote API建立容器區段中的 CpuShares 以及 docker run--cpu-shares 選項。每個 vCPU 相當於 1,024 個 CPU 共用。您必須指定至少 1 個 vCPU。

      2. 針對記憶體,輸入容器可用的記憶體限制。如果您的容器嘗試超過此處指定的記憶體,則容器會停止。此參數會映射到 Docker Remote API建立容器區段中的 Memory 以及 docker run--memory 選項。您必須為單一工作指定至少 4 MiB 的記憶體。

        注意

        若要最大化資源使用率,請為特定執行個體類型的任務排定記憶體的優先順序。如需詳細資訊,請參閱運算資源記憶體管理

    10. (選用) 對於環境變數,選擇新增環境變數,將環境變數新增為名稱值對。這些變數會傳遞至容器。

    11. (選用) 對於磁碟區掛載

      1. 選擇新增磁碟區掛載

      2. 輸入名稱,然後在掛載磁碟區的容器中輸入掛載路徑。輸入 SubPath 以指定參考磁碟區中的子路徑,而非其根路徑。

      3. 選擇唯讀以移除磁碟區的寫入許可。

      4. 選擇新增磁碟區掛載

    12. (選用) 對於以使用者身分執行,輸入使用者 ID 以執行容器程序。

      注意

      使用者 ID 必須存在於映像中,容器才能執行。

    13. (選用) 對於以群組身分執行,輸入群組 ID 以執行容器程序執行時間。

      注意

      群組 ID 必須存在於映像中,容器才能執行。

    14. (選用) 若要在主機執行個體上提升您任務的容器許可 (類似root使用者),請將特權滑桿拖曳至右側。此參數會映射到 Docker Remote API建立容器區段中的 Privileged 以及 docker run--privileged 選項。

    15. (選用) 開啟唯讀根檔案系統,以移除根檔案系統的寫入存取權。

    16. (選用) 開啟以非根使用者身分執行 t,以非根使用者pod身分執行 中的容器。

      注意

      如果開啟以非根身分執行, 會在執行時間kubelet驗證映像,以確認映像未以 UID 0 執行。

    17. 選擇下一頁

  12. 針對任務定義檢閱,檢閱組態步驟。如需變更,請選擇 Edit (編輯)。完成後,請選擇建立任務定義