您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Kubernetes 1.21如何引入Indexed Jobs特性”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Kubernetes 1.21如何引入Indexed Jobs特性”這篇文章吧。
一旦你將一個非并行作業(Job)容器化,就很容易在 Kubernetes 上啟動并運行它,而無需修改二進制文件。在大多數情況下,當運行并行分布式作業時,你必須設置一個單獨的系統來在工作資源之間劃分工作。例如,你可以設置一個任務隊列,將一個工作項分配給每個 Pod[2],或將多個項分配給每個 Pod,直到隊列清空為止[3]。
Kubernetes 1.21 版本引入了一個新的字段來控制作業完成模式,這是一個配置選項,允許你控制 Pod 完成如何影響作業的總體進度,有兩個可能的選項(目前):
你可以開始使用帶有索引完成模式的作業,簡稱為索引作業(Indexed Jobs),來輕松啟動并行作業。然后,每個 worker Pod 可以根據索引有一個靜態分配的數據分區。這使你不必設置排隊系統,甚至不必修改二進制文件!
要創建一個索引作業,你只需添加 completionMode: Indexed 到作業規范中,并使用 JOB_COMPLETION_INDEX 環境變量。
apiVersion: batch/v1
kind: Job
metadata:
name: 'sample-job'
spec:
completions: 3
parallelism: 3
completionMode: Indexed
template:
spec:
restartPolicy: Never
containers:
- command:
- 'bash'
- '-c'
- 'echo "My partition: ${JOB_COMPLETION_INDEX}"'
image: 'docker.io/library/bash'
name: 'sample-load'
注意,完成模式是 1.21 版本中的一個 alpha 特性。為了能夠在集群中使用它,請確保在 API 服務器和控制器管理器上啟用了 IndexedJob 特性門。
當你運行該示例時,你將看到三個創建的 Pods 中的每一個都獲得了不同的完成索引。為了方便用戶,控制平面設置 JOB_COMPLETION_INDEX 環境變量,但是你可以選擇設置自己的或將索引暴露為文件。
SIG Apps 設想可能有更多的完成模式,為 Job API 啟用更多的用例。我們歡迎你在kubernetes/kubernetes[5]中提出你的建議。
特別是,我們正在考慮一種 IndexedAndUnique 模式,其中索引不僅作為注釋可用,而且是 Pod 名稱的一部分,類似于 StatefulSet。這應該有助于緊密耦合的 Pod 之間的通信。你可以參加這個公開問題[6]的討論。
索引作業(Indexed Jobs)允許你在并行作業的作業之間靜態地劃分作業。SIG Apps 希望這個特性能夠促進更多的批量工作負載遷移到 Kubernetes。
以上是“Kubernetes 1.21如何引入Indexed Jobs特性”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。