105
直播
運行離線任務__應用管理_用戶指南_容器服務-阿裏雲
容器服務抽象出離線計算的基本模型,推出了基於 Docker 容器的離線計算功能。
其核心功能包括:
- 作業編排
- 作業調度與生命周期管理
- 存儲與日誌等功能的集成
基本概念
下表中列出了離線應用與在線應用的概念對比。
概念 | 離線應用 | 在線應用 |
---|---|---|
容器 | 任務執行單元 | 服務的執行單元 |
運行曆史 | 任務出錯重試的執行曆史 | 無 |
服務(任務) | 一個特定的功能,可以分割成若幹個容器來執行 | 一組功能相同的容器 |
應用(作業) | 若幹個任務的組合 | 若幹個服務的組合 |
簡言之,一個離線作業包含若幹個任務,每個任務可以由若幹個容器來執行,每個容器可以有多個運行曆史;而一個在線應用包含若幹個服務,每個服務可以有若幹個容器同時服務。
基於 Docker Compose 的作業編排
和在線應用一樣,您可以使用 Docker Compose 來描述和編排作業。Docker Compose 支持 Docker 的絕大部分功能,比如:
- CPU、內存等資源限製
- 數據卷(Volume)
- 環境變量與標簽
- 網絡模型、端口暴露
除此之外,阿裏雲容器服務還擴展了以下功能:
- 容器數量:每個任務分成多少個容器
- 重試次數:每個容器重試多少次
- 移除容器:容器運行完後是否刪除,可選策略包括
remove_finished
(刪除完成的容器)、remove_failed
(刪除失敗的容器)、remove_all
(刪除全部容器)、remove_none
(不刪除)。 - DAG 模型的任務依賴:同一個作業的任務之間可以有依賴關係,被依賴的任務會先執行。
離線作業的 Docker Compose 示例:
version: "2"
labels:
aliyun.project_type: "batch"
services:
s1:
image: registry.aliyuncs.com/jimmycmh/testret:latest
restart: no
cpu_shares: 10
mem_limit: 100000000
labels:
aliyun.scale: "10"
aliyun.retry_count: "20"
aliyun.remove_containers: "remove-all"
s2:
image: registry.aliyuncs.com/jimmycmh/testret:latest
cpu_shares: 50
mem_limit: 100000000
labels:
aliyun.scale: "4"
aliyun.retry_count: "20"
aliyun.remove_containers: "remove-finished"
aliyun.depends: "s1"
注意:
- 該功能隻支持 Docker Compose 2.0。
- 您需要在作業級別添加標簽
aliyun.project_type: "batch"
。如果您未添加該標簽或標簽值不為batch
,則認為該應用為在線應用。 - 無論您將
restart
設置為什麼值,都會被修改為no
。 - 您可以用
aliyun.depends
標簽指定依賴關係。可以依賴多個任務,用逗號(,)分隔。 aliyun.retry_count
的默認值為 3。aliyun.remove_containers
的默認值為remove_finished
。
作業生命周期管理
容器狀態由容器的運行及退出狀態決定;任務狀態由該任務中所有容器的狀態決定;作業狀態由該作業的所有任務決定。
容器狀態
- 運行中(Running):容器在運行。
- 完成(Finished):容器退出且
ExitCode==0
。 - 失敗(Failed):容器退出且
ExitCode!=0
。
任務狀態
- 運行中(Running):有容器在運行。
- 完成(Finished):所有容器都完成了。
- 失敗(Failed):有容器失敗次數超過給定值。
作業狀態
- 運行中(Running):有任務在運行。
- 完成(Finished):所有任務都完成了。
- 失敗(Failed):有任務失敗了。
上述狀態都可以通過 API 獲取,方便您自動化運維。
共享存儲
容器之間、任務之間會有數據共享和交換,共享存儲可以解決這一問題。比如在 Hadoop上跑 MR 作業,是通過 HDFS 來交換數據的。在容器服務中,可以使用三類共享存儲,其特性及應用場景對比如下所示。
存儲 | 優點 | 缺點 | 適用範圍 |
---|---|---|---|
OSSFS 數據卷 | 跨主機共享 | 讀寫、ls 性能低;修改文件會導致文件重寫 | 共享配置文件;附件上傳 |
阿裏雲 NAS 數據卷 | 跨主機共享;按需擴容; 高性能、高可靠性;掛載速度高 | 成本略高 | 需要共享數據的重 IO 應用,如文件服務器等;需要快速遷移的重 IO 應用,如數據庫等 |
您自己集成成三方存儲,如 Portworx | 將集群內的雲盤虛擬成共享的大磁盤;性能高;snapshot、多拷貝 | 需要一定運維能力 | 同 NAS |
具體使用數據卷的幫助,可以參考以下文檔:
集成日誌和監控服務
日誌和監控是分析離線作業的重要工具。阿裏雲容器服務集成了阿裏雲日誌服務與雲監控功能,隻要在編排模板中添加一個標簽,就可以將日誌收集到日誌服務,將容器的 CPU、內存等數據收集到雲監控。具體使用方便請參考下麵的文檔。
操作步驟
登錄 容器服務管理控製台 並創建一個集群。
有關如何創建集群的詳細信息,參見 創建集群。
單擊左側導航欄中的 應用 並單擊右上角的 創建應用。
設置應用的基本信息,單擊 使用編排模板創建。
填入上文中的編排模板並單擊 創建並部署。
單擊 應用 並單擊創建的應用的名稱,可以查看應用的運行狀態,如下圖所示。
最後更新:2016-11-23 16:04:16
上一篇:
刪除應用__應用管理_用戶指南_容器服務-阿裏雲
下一篇:
定時任務__應用管理_用戶指南_容器服務-阿裏雲
保留字__附錄_SQL_大數據計算服務-阿裏雲
雲服務器 ECS 快照(Snapshot)快照 2.0 產品規格升級
設置發信地址__郵件設置_使用手冊_郵件推送-阿裏雲
應用案例__安全組_用戶指南_雲服務器 ECS-阿裏雲
彈性Web托管如何綁定域名__產品相關問題_使用問題_彈性 Web 托管-阿裏雲
TXC 簡介__TXC for EDAS_二方服務_企業級分布式應用服務 EDAS-阿裏雲
FTP基礎知識__網站上傳/下載_使用指南_雲虛機主機-阿裏雲
SSH 登錄時出現如下錯誤:Host key verification failed__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
服務部署約束(affinity:service)__服務編排文檔_用戶指南_容器服務-阿裏雲
作業管理__控製台使用指南_批量計算-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲