本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:在 Amazon EKS 資源上建立單一節點任務定義
請完成下列步驟,以在 Amazon Elastic Kubernetes Service (Amazon EKS) 上建立單一節點任務定義。
若要在 Amazon EKS 資源上建立新的任務定義:
-
在 https://https://console.aws.amazon.com/batch/
開啟 AWS Batch 主控台。 -
從頂端導覽列中,選擇要 AWS 區域 使用的 。
-
在左側導覽窗格中,選擇任務定義。
-
選擇 Create (建立)。
-
針對協調類型,選擇彈性 Kubernetes Service (EKS)。
-
針對名稱,輸入任務定義的唯一名稱。名稱的長度上限為 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。
-
(選用) 針對執行逾時,輸入逾時值 (以秒為單位)。執行逾時是未完成任務終止之前的時間長度。如果嘗試超過逾時持續時間,則嘗試會停止並移至
FAILED
狀態。如需詳細資訊,請參閱任務逾時。最小值為 60 秒。 -
(選用) 開啟排程優先順序。輸入介於 0 到 100 之間的排程優先順序值。較高值的優先順序高於較低值。
-
(選用) 展開標籤,然後選擇新增標籤以將標籤新增至資源。
-
選擇下一頁。
-
在 EKS pod 屬性區段中:
-
針對服務帳戶名稱,輸入為在 中執行的程序提供身分的帳戶pod。
-
開啟主機網路以使用Kubernetespod網路模型,並為傳入連線開啟接聽連接埠。僅針對傳出通訊關閉此設定。
-
針對 DNS 政策,選擇下列其中一項:
-
無值 (空) – pod忽略Kubernetes環境中的 DNS 設定。
-
預設 – 繼承其執行pod節點的名稱解析組態。
注意
如果未指定 DNS 政策,則預設 不是預設 DNS 政策。而是使用 ClusterFirst。
-
ClusterFirst – 任何不符合已設定叢集網域尾碼的 DNS 查詢都會轉送到從節點繼承的上游名稱伺服器。
-
ClusterFirstWithHostNet – 如果主機網路已開啟,請使用 。
-
-
(選用) 對於 Pod 標籤,選擇新增 Pod 標籤,然後輸入名稱值對。
重要
Pod 標籤的字首不能包含
kubernetes.io/
、k8s.io/
或batch.amazonaws.com/
。 -
(選用) 對於 Pod 註釋,選擇新增註釋,然後輸入名稱/值對。
重要
Pod 註釋的字首不能包含
kubernetes.io/
、k8s.io/
或batch.amazonaws.com/
。 -
選擇下一頁。
-
在容器組態區段中:
-
針對名稱,輸入容器的唯一名稱。名稱必須以字母或數字開頭,長度最多可達 63 個字元。它可以包含大小寫字母、數字和連字號 (-)。
-
針對映像,選擇要用於任務的Docker映像。根據預設,Docker Hub 登錄檔中的映像為可用。您也可以用
指定其他儲存庫。名稱長度上限為 255 個字元。可包含大寫及小寫字母、數字、連字號 (-)、底線 (_)、冒號 (:)、句點 (.)、斜線 (/) 和數字符號 (#)。此參數在 Docker Remote API 的建立容器repository-url
/image
:tag
區段 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 上官方儲存庫中的映像,使用的是單一名稱 (例如,
ubuntu
或mongo
)。 -
Docker Hub 上的其他儲存庫中的映像要求使用組織名稱 (例如,
amazon/amazon-ecs-agent
)。 -
其他線上儲存庫中的映像更進一步要求使用網域名稱 (例如,
quay.io/assemblyline/ubuntu
)。
-
-
(選用) 對於映像提取政策,選擇提取映像的時間。
-
(選用) 對於命令,輸入要傳遞至容器的 Bash或 JSON命令。
-
(選用) 針對引數,輸入要傳遞至容器的引數。如果未提供引數,則會使用容器映像命令。
-
-
(選用) 您可以將參數新增至任務定義做為名稱值映射,以覆寫任務定義預設值。若要新增參數:
-
針對參數,輸入名稱值對,然後選擇新增參數。
重要
如果您選擇新增參數,您必須設定至少一個參數,或選擇移除參數
-
-
在環境組態區段中:
-
針對 vCPUs,輸入要預留給容器的 vCPUs 數量。此參數會映射到 Docker Remote API
的建立容器 區段中的 CpuShares
以及 docker run的 --cpu-shares
選項。每個 vCPU 相當於 1,024 個 CPU 共用。您必須指定至少 1 個 vCPU。 -
針對記憶體,輸入容器可用的記憶體限制。如果您的容器嘗試超過此處指定的記憶體,則容器會停止。此參數會映射到 Docker Remote API
的建立容器 區段中的 Memory
以及 docker run的 --memory
選項。您必須為單一工作指定至少 4 MiB 的記憶體。注意
若要最大化資源使用率,請為特定執行個體類型的任務排定記憶體的優先順序。如需詳細資訊,請參閱運算資源記憶體管理。
-
-
(選用) 對於環境變數,選擇新增環境變數,將環境變數新增為名稱值對。這些變數會傳遞至容器。
-
(選用) 對於磁碟區掛載:
-
選擇新增磁碟區掛載。
-
輸入名稱,然後在掛載磁碟區的容器中輸入掛載路徑。輸入 SubPath 以指定參考磁碟區中的子路徑,而非其根路徑。
-
選擇唯讀以移除磁碟區的寫入許可。
-
選擇新增磁碟區掛載。
-
-
(選用) 對於以使用者身分執行,輸入使用者 ID 以執行容器程序。
注意
使用者 ID 必須存在於映像中,容器才能執行。
-
(選用) 對於以群組身分執行,輸入群組 ID 以執行容器程序執行時間。
注意
群組 ID 必須存在於映像中,容器才能執行。
-
(選用) 若要在主機執行個體上提升您任務的容器許可 (類似
root
使用者),請將特權滑桿拖曳至右側。此參數會映射到 Docker Remote API的建立容器 區段中的 Privileged
以及 docker run的 --privileged
選項。 -
(選用) 開啟唯讀根檔案系統,以移除根檔案系統的寫入存取權。
-
(選用) 開啟以非根使用者身分執行 t,以非根使用者pod身分執行 中的容器。
注意
如果開啟以非根身分執行, 會在執行時間kubelet驗證映像,以確認映像未以 UID 0 執行。
-
選擇下一頁。
-
-
針對任務定義檢閱,檢閱組態步驟。如需變更,請選擇 Edit (編輯)。完成後,請選擇建立任務定義。