kubernetes實踐之三十八:Pod排程
一: Deployment/RC: 全自動排程
Deployment或RC的主要功能之一就是自動部署一個容器應用的多份副本,以及持續監控副本的數量,在叢集內始終維持使用者指定的副本數量。
二: NodeSelector: 定向排程
可以透過Node的標籤(Label)和Pod的nodeSelector屬性匹配,將Pod排程到指定節點。
三: NodeAffinity: 親和性排程
用於替換NodeSelector的全新排程策略,目前有兩種節點親和性表達。
1. RequiredDuringSchedulingIgnoredDuringExecution: 必須滿足指定的規則才可以排程Pod到Node上,相當於硬限制。
2. PreferredDuringSchedulingIgnoredDuringExecution: 強調優先滿足指定規則,排程器會嘗試排程Pod到Node上,但並不強求,相當於軟限制。多個優先順序規則還可以設定權重值,以定義執行的先後順序。
如果同時定義了nodeSelector和nodeAffinity,那麼必須兩個條件都得到滿足,Pod才能最終執行在指定的Node上。
四:PodAffinity: 親和與互斥排程策略
五: Taints和Tolerations(汙點和容忍)
Taint需要和Toleration配合使用,讓Pod避開那些不適合的Node. 在Node上設定一個或多個Taint之後,除非Pod明確生命能夠容忍這些“汙點”,否則無法在這些Node上執行。Toleration是Pod的屬性,讓Pod能夠執行在標註了Taint的Node上。
六: DaemonSet: 在每個Node上排程一個Pod
七: Job批處理排程
1.Job Template Expansion模式:一個Job物件對應一個待處理的Work item,有幾個Work item就產生幾個獨立的Job,通常適合Work item 數量少,每個Work item處理的資料量比較大的場景。
2.Queue with Pod Per Work Item模式:採用一個任務佇列存放Work item,一個Job物件作為消費者去完成這些Work item,在這種模式下,Job會啟動N個Pod,每個Pod對應一個Work item.
3.Queue with Variable Pod Count 模式:也是採用一個任務佇列存放Work item,一個Job物件作為消費者去完成這些Work item,但與上面的模式不同,Job啟動的Pod數量是可變的。
八: Cronjob: 定時任務
類似於Linux Cron的定時任務Cron Job.
九: 自定義排程
Deployment或RC的主要功能之一就是自動部署一個容器應用的多份副本,以及持續監控副本的數量,在叢集內始終維持使用者指定的副本數量。
二: NodeSelector: 定向排程
可以透過Node的標籤(Label)和Pod的nodeSelector屬性匹配,將Pod排程到指定節點。
三: NodeAffinity: 親和性排程
用於替換NodeSelector的全新排程策略,目前有兩種節點親和性表達。
1. RequiredDuringSchedulingIgnoredDuringExecution: 必須滿足指定的規則才可以排程Pod到Node上,相當於硬限制。
2. PreferredDuringSchedulingIgnoredDuringExecution: 強調優先滿足指定規則,排程器會嘗試排程Pod到Node上,但並不強求,相當於軟限制。多個優先順序規則還可以設定權重值,以定義執行的先後順序。
如果同時定義了nodeSelector和nodeAffinity,那麼必須兩個條件都得到滿足,Pod才能最終執行在指定的Node上。
四:PodAffinity: 親和與互斥排程策略
五: Taints和Tolerations(汙點和容忍)
Taint需要和Toleration配合使用,讓Pod避開那些不適合的Node. 在Node上設定一個或多個Taint之後,除非Pod明確生命能夠容忍這些“汙點”,否則無法在這些Node上執行。Toleration是Pod的屬性,讓Pod能夠執行在標註了Taint的Node上。
六: DaemonSet: 在每個Node上排程一個Pod
七: Job批處理排程
1.Job Template Expansion模式:一個Job物件對應一個待處理的Work item,有幾個Work item就產生幾個獨立的Job,通常適合Work item 數量少,每個Work item處理的資料量比較大的場景。
2.Queue with Pod Per Work Item模式:採用一個任務佇列存放Work item,一個Job物件作為消費者去完成這些Work item,在這種模式下,Job會啟動N個Pod,每個Pod對應一個Work item.
3.Queue with Variable Pod Count 模式:也是採用一個任務佇列存放Work item,一個Job物件作為消費者去完成這些Work item,但與上面的模式不同,Job啟動的Pod數量是可變的。
八: Cronjob: 定時任務
類似於Linux Cron的定時任務Cron Job.
九: 自定義排程
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2154413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kubernetes之Pod排程
- kubernetes實踐之三十七:Pod健康檢查
- kubernetes實踐之三十五:Pod配置管理ConfigMap
- kubernetes實踐之三十九:Pod初始化容器之Init ContainerAI
- Kubernetes Pod排程:從基礎到高階實戰技巧
- kubernetes實踐之三十六:在容器內獲取Pod資訊 Downward APIAPI
- kubernetes實踐之三十一:kubectl
- kubernetes實踐之五十八:CronJob
- kubernetes實踐之二十二:Pod
- kubernetes實踐之三十三:基本概念
- kubernetes實踐之三十: SonarQube和SonarQube Runner
- kubernetes 排程
- Kubernetes 排程器實現初探
- Pod的排程機制
- kubernetes實踐之三十二:Jenkins和SonarQube整合Jenkins
- Pod的排程是由排程器(kube-scheduler)
- Kubernetes的Pod排程:讓你的應用像乘坐頭等艙!
- 當一個 Pod 被排程時,Kubernetes 內部發生了什麼?
- Kubernetes 排程器
- kubernetes實踐之六十八:部署 coredns 外掛DNS
- kubernetes實踐之三:ETCD TLS證書叢集安裝TLS
- k8s之pod排程K8S
- kubernetes實踐之四十八:Service Controller與Endpoint ControllerController
- kubernetes實踐之四十:Pod的升級與回滾
- TKE 使用者故事 | 作業幫 Kubernetes 原生排程器優化實踐優化
- kubernetes實踐之三十四: Master節點安裝與配置AST
- kubernetes負載感知排程負載
- Kubernetes資源編排系列之一: Pod YAML篇YAML
- 改造 Kubernetes 自定義排程器
- Kubernetes排程流程與安全(七)
- Hadoop YARN:排程效能最佳化實踐HadoopYarn
- kubernetes實踐之二十八:使用Harbor作為私有映象倉庫
- kubernetes實踐之十八:叢集各模組之間的通訊
- kubernetes實踐之四十一:Pod自動擴容與縮容
- kubernetes排程概念與工作流程
- 進擊的 Kubernetes 排程系統(一):Kubernetes scheduling frameworkFramework
- Kubernetes-15:一文詳解Pod、Node排程規則(親和性、汙點、容忍、固定節點)
- 基於Azkaban的任務定時排程實踐