Job主要用於運行短暫的、一次性的批量任務(short-lived one-off tasks),確保批處理任務的一個或多個Pod成功執行。ACS叢集支援通過控制台建立任務類型的應用,本文介紹如何建立一個Job類型工作負載。
背景資訊
根據.spec.completions(需要成功完成的Pod數,預設為1)和.spec.parallelism(Job可以並行啟動並執行最大副本數,預設為1)的配置,可以將Job劃分為以下幾種類型:
Job類型 | completions | parallelism | 使用樣本 | 行為 |
一次性Job | 1 | 1 | 資料庫遷移 | 運行一個Pod直至其成功完成。 |
固定結束次數的Job | 2+ | 1 | 處理工作隊列的Pod | Pod依次運行,直至成功完成的Pod數達到 |
帶有工作隊列的並行Job | 1 | 2+ | 多個Pod同時處理工作隊列,不要求成功數 | 多個Pod並行運行,直至有一個Pod成功完成。 |
固定結束次數的並行Job | 2+ | 2+ | 多個Pod同時處理工作隊列,要求成功數 | 多個Pod並行運行,直至成功完成的Pod數達到 |
操作步驟
步驟一:配置應用基本資料
登入容器計算服務控制台,在左側導覽列選擇叢集。
在叢集頁面,單擊目的地組群ID或者目的地組群右側操作列下的詳情。
在叢集管理頁左側導覽列,選擇。
在任務頁面,單擊使用鏡像建立。
在應用基本資料設定精靈頁面,配置應用的基本資料。
配置項
描述
應用程式名稱
輸入應用的名稱。
類型
選擇任務(Job)。
標籤
為該應用添加一個標籤,標識該應用。
註解
為該應用添加一個註解(Annotation)。
執行個體類型
選擇執行個體類型。關於執行個體類型的說明,請參見ACS Pod執行個體概述。
QoS類型
選擇QoS類型。更多資訊,請參見算力品質定義。
通用型執行個體支援default和best-effort。
效能型執行個體僅支援default。
完成基本資料配置後,單擊下一步。
步驟二:配置容器
在容器配置嚮導頁面中,配置容器的鏡像、資源、連接埠、環境變數、生命週期、資料卷和日誌等資訊。
在容器1頁簽右側,單擊添加容器,可以為應用的Pod設定多個容器。
在基本配置地區,完成容器的基本配置。
配置項
說明
鏡像名稱
選擇鏡像
單擊選擇鏡像,選擇所需的鏡像。
Container Registry企業版:可以選擇託管在Container RegistryACR中的企業版鏡像。需要選擇鏡像所屬地區,以及鏡像服務執行個體。關於ACR的更多資訊,請參見什麼是Container RegistryACR。
Container Registry個人版(需要提前開通):可以選擇託管在Container RegistryACR中的個人版鏡像。需要選擇鏡像所屬地區,以及鏡像服務執行個體。
製品中心:包含應用程式容器化基礎OS鏡像、基礎語言鏡像、AI/巨量資料相關鏡像,本樣本以製品中心的Nginx鏡像為例說明。關於製品中心的更多資訊,請參見製品中心。
(可選)設定鏡像拉取策略
在鏡像拉取策略的下拉式清單中選擇鏡像拉取策略。預設情況下不設定,採用Kubernetes預設的IfNotPresent。
優先使用本地鏡像(IfNotPresent):如果本地已經存在該鏡像(之前拉取過該鏡像至宿主機中),則不會再次拉取,如果本地不存在該鏡像,則會拉取該鏡像。
總是拉取鏡像(Always):表示每次部署或擴容都會重新拉取鏡像,而不會使用本地鏡像。
僅使用本地鏡像(Never):僅使用本地鏡像。
(可選)設定鏡像密鑰
單擊設定鏡像密鑰,為私人鏡像設定密鑰以確保安全。
所需資源
為容器設定資源額度。
容器啟動項
(可選)設定容器啟動項。
stdin:將控制台輸入發送到容器。
tty:將標準輸入控制台作為容器的控制台輸入。
說明通常會同時選中stdin和tty,表示將終端(tty)綁定到容器的標準輸入(stdin)上。例如,一個互動程式從使用者擷取標準輸入,並顯示到終端中。
初始化容器
(可選)選擇該選項,表示建立一個初始化容器。
初始化容器提供了一種機制來阻塞或延遲應用程式容器的啟動,初始化容器執行成功後,Pod內的應用程式容器會並行啟動。例如,檢測依賴服務的可用性。初始化容器可以包括一些應用鏡像中不存在的工具 + 生產力和安裝指令碼,用來初始化應用程式容器的運行環境,例如設定核心參數、組建組態檔案。更多資訊,請參見Init Container。
(可選)在連接埠設定地區,單擊新增設定容器的連接埠。
配置項
說明
名稱
設定容器連接埠名稱。
容器連接埠
設定暴露的容器訪問連接埠,連接埠號碼必須介於1~65535。
協議
支援TCP和UDP。
(可選)在環境變數地區,單擊新增設定環境變數。
支援通過索引值對的形式為Pod配置環境變數,用於給Pod添加環境標誌或傳遞配置等。更多資訊,請參見Pod Environment Variables。
配置項
說明
類型
設定環境變數的類型:
自訂
配置項
保密字典
變數/變數引用
資源引用
配置項、保密字典支援全部檔案的引用。
本樣本以保密字典為例。選擇保密字典類型,只選擇目標保密字典,則預設引用全部檔案。

對應的YAML,也引用了整個密鑰(Secret)。

變數名稱
設定環境變數名稱。
變數/變數引用
設定變數引用的值。
(可選)在生命週期地區,設定容器的生命週期。
您可以為容器的生命週期配置啟動執行、啟動後處理和停止前處理。具體操作,請參見配置生命週期。
配置項
說明
啟動執行
為容器設定啟動前置命令和參數。
啟動後處理
為容器設定啟動後的命令。
停止前處理
為容器設定預終止命令。
(可選)在資料卷地區,為容器掛載資料卷。
(可選)在日誌配置地區,進行採集配置和自訂Tag設定。
配置項
說明
採集配置
日誌庫:即在Log Service中產生一個對應的Logstore,用於儲存採集日誌。
容器內日誌路徑:支援Stdout和文本日誌。
Stdout:表示採集容器的標準輸出日誌。
文本日誌:表示收集容器內指定路徑的日誌本例中表示
/var/log/nginx下所有的文本日誌,也支援萬用字元的方式。
自訂Tag
您還可以設定自訂Tag,設定Tag後,會將該Tag一起採集到容器的日誌輸出中。自訂Tag可以協助您給容器日誌打上Tag,方便進行日誌統計和過濾等分析操作。
單擊下一步,進入進階配置設定精靈頁面。
步驟三:完成進階配置
在任務設定地區,設定任務。
配置項
說明
成功啟動並執行Pod數
即completions,指定Job需要成功啟動並執行Pod數量。預設值為1。
並行啟動並執行Pod數
即parallelism,指定Job在任一時刻可以並發啟動並執行Pod數量。預設值為1。
逾時時間
即activeDeadlineSeconds,指定Job可啟動並執行時間期限,超過時間還未結束,系統將會嘗試進行終止。
重試次數
Pod運行失敗後,嘗試重建Pod的次數。預設是6次,每次失敗後重試會有延遲時間,該時間是指數級增長,最長時間是6 min。
重啟策略
僅支援不重啟(Never)和失敗時(OnFailure)。
(可選)在標籤和注釋地區,單擊添加設定容器組的標籤和注釋。
單擊建立。
步驟四:查看應用資訊
建立成功後,預設進入建立完成頁面,單擊查看應用詳情可以跳轉到該Job的詳情頁面。
您也可以在任務頁面查看該Job的資訊,單擊目標Job的名稱或對應操作列下的詳情可以進入應用詳情頁面。