1. 程式人生 > >kubernetes排程之NodeSelector

kubernetes排程之NodeSelector

http://blog.csdn.net/tiger435/article/details/73650147

本文主要介紹kubernetes排程框架中的NodeName和NodeSelector。

1 NodeName

Pod.spec.nodeName用於強制約束將Pod排程到指定的Node節點上,這裡說是“排程”,但其實指定了nodeName的Pod會直接跳過Scheduler的排程邏輯,直接寫入PodList列表,該匹配規則是強制匹配。

例子:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-deploy
spec:
replicas: 1 template: metadata: labels: app: tomcat-app spec: nodeName: k8s.node1 #指定排程節點為k8s.node1 containers: - name: tomcat image: tomcat:8.0 ports: - containerPort: 8080
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2 NodeSelector

Pod.spec.nodeSelector

是通過kubernetes的label-selector機制進行節點選擇,由scheduler排程策略MatchNodeSelector進行label匹配,排程pod到目標節點,該匹配規則是強制約束。啟用節點選擇器的步驟為:

  • Node新增label標記
#標記規則:kubectl label nodes <node-name> <label-key>=<label-value>
kubectl label nodes k8s.node1 cloudnil.com/role=dev

#確認標記
[email protected].master1:~# kubectl get nodes k8s.node1 --show-labels
NAME STATUS AGE LABELS k8s.node1 Ready 29d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,cloudnil.com/role=dev,kubernetes.io/hostname=k8s.node1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • Pod定義中新增nodeSelector
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-deploy
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: tomcat-app
    spec:
      nodeSelector:
        cloudnil.com/role: dev #指定排程節點為帶有label標記為:cloudnil.com/role=dev的node節點
      containers:
      - name: tomcat
        image: tomcat:8.0
        ports:
        - containerPort: 8080

相關推薦

kubernetes排程NodeSelector

http://blog.csdn.net/tiger435/article/details/73650147 本文主要介紹kubernetes排程框架中的NodeName和NodeSelector。 1 NodeName Pod.spec.nodeName用於強制約

深入kubernetes排程NodeSelector

Kubernetes的排程有簡單,有複雜,指定NodeName和使用NodeSelector排程是最簡單的,可以將Pod排程到期望的節點上。 Kubernetes&Docker技術交

Kubernetes排程親和性和反親和性

背景 Kubernetes中的排程策略可以大致分為兩種,一種是全域性的排程策略,要在啟動排程器時配置,包括kubernetes排程器自帶的各種predicates和priorities演算法;另一種是執行時排程策略,包括nodeAffinity(主機親和性),podAffinity(

深入kubernetes排程原理分析

排程器是編排工具的核心,排程策略和演算法是編排工具的靈魂。Kubernetes之所以能夠大行其道,正是因為其優良的排程演算法,本文就來分析下kubernets中scheduler元件的排程原理。 Kubernetes&Docker技術交流QQ

Kubernetes排程親和與反親和

系列目錄 部署pod時,大多數情況下kubernetes的排程程式能將pod排程到叢集中合適的節點上。但有些情況下使用者需要對pod排程到哪個節點上施加更多控制,比如將特定pod部署到擁有SSD儲存節點、將同一個服務的多個後端部署在不同的機器上提高安全性、將通訊頻繁的服務部署在同一個可用區域降低通訊鏈路長

kubernetes排程汙點(taint)和容忍(toleration)

系列目錄 節點親和性(affinity),是節點的一種屬性,讓符合條件的pod親附於它(傾向於或者硬性要求).汙點是一種相反的行為,它會使pod抗拒此節點(即pod排程的時候不被排程到此節點) 汙點和容易結合在一起以確保pod不會被排程到不適合的節點上.當一個或者多個汙點新增到某個節點上,則意味著此節點不

kubernetes排程資源配額

系列目錄 當多個使用者或者開發團隊共享一個有固定節點的的kubernetes叢集時,一個團隊或者一個使用者使用的資源超過他應當使用的資源是需要關注的問題,資源配額是管理員用來解決這個問題的一個工具. 資源配額,通過ResourceQuota定義,提供了對某一名稱空間使用資源的總體約束.它即可以限制這個名稱

kubernetes排程資源配額示例

系列目錄 前面說過,資源配額限制在指定名稱空間下,對資源物件數量和特定型別的資源的限制,你可以在ResourceQuota中指定配額 建立名稱空間 我們建立一個新的名稱空間來演示 kubectl create namespace quota-object-example 建立資源配額 以下是資源配額物件的

kubernetes排程pod優先順序和資源搶佔

系列目錄 Pod可以擁有優先順序.優先意味著相對於其它pod某個pod更為重要.如果重要的pod不能被排程,則kubernetes排程器會優先於(驅離)低優先順序的pod來讓處於pending狀態的高優先順序pod被排程. kubernetes 1.9以後,優先順序會影響pod的排程順序和資源耗盡時pod

kubernetes排程資源耗盡處理配置

系列目錄 本篇將介紹如何使用kubelet處理資源耗盡的情況 當可用的計算機資源非常低的時候,kubelet仍然要保證節點的穩定性.當處理不可壓縮的計算機資源(比如記憶體或磁碟空間)時,這尤其重要,當這些資源被耗盡時,節點將變得不穩定 驅離策略 kubelet會積極的監視並阻止可用計算機資源耗盡.這種情況

深入kubernetes調度NodeSelector

調度 rep com 列表 sta spec aml ready sel 本文主要介紹kubernetes調度框架中的NodeName和NodeSelector。 1 NodeName Pod.spec.nodeName用於強制約束將Pod調度到指定的Node節點上,這裏說

kubernetes資源排程LimitRange

系列目錄 LimitRange從字面意義上來看就是對範圍進行限制,實際上是對cpu和記憶體資源使用範圍的限制 前面我們講到過資源配額,資源配額是對整個名稱空間的資源的總限制,是從整體上來限制的,而LimitRange則是對pod和container級別來做限制的 由於LimitRange是基於名稱空間的,

Kubernetes K8S排程器kube-scheduler詳解

  Kubernetes K8S之排程器kube-scheduler概述與詳解   kube-scheduler排程概述 在 Kubernetes 中,排程是指將 Pod 放置到合適的 Node 節點上,然後對應 Node 上的 Kubelet 才能夠執行這些 pod。 排程器通過 k

kubernetes部署創建TLS證書(2)

efault control sage 啟用 簽名證書 sched amd .json 進行 研究過kubernetes的同事們都知道,kubernetes如果需要啟用TLS認證,那麽制作證書是必不可少的一步。然而,很多人在制作證書上遇到了很多的麻煩。今天主要記錄一次我在部

kubernetes實戰二(Pod)

namespace temp 準備 版本 containe tcp esp .cn lur Pod是kubernetes的基本操作單元,也是應用運行的載體。整個kubernetes系統都是圍繞著Pod展開的,比如如何部署運行Pod、如何保證Pod的可靠性、如何訪問Pod等。

Kubernetes 實踐 service

請求分發 tps spec eat 直接 sele 服務 節點 emp service是k8s最核心的概念。通過創建service,可以為一組具有相同功能的容器應用提供一個統一的入口地址,並且將請求負載分發到後端的各個容器應用上去 service定義詳解 ymal

Kubernetes學習路(十一)資源清單定義

map latest dem kubectl 服務發現 bject 均衡 ima limit 一、Kubernetes常用資源 以下列舉的內容都是 kubernetes 中的 Object,這些對象都可以在 yaml 文件中作為一種 API 類型來配置。 類別 名稱

kubernetes排程實踐及原理分析

kubernetes排程策略分析 Kubernetes排程器根據特定的演算法與策略將pod排程到工作節點上。在預設情況下,Kubernetes排程器可以滿足絕大多數需求,例如排程pod到資源充足的節點上執行,或排程pod分散到不同節點使叢集節點資源均衡等。但一些特殊的場景,預設排程演

Kubernetes學習路(一)Kubeadm部署K8S集群

chown you eof onf 訪問 perf 處的 iyu inter 一個星期會超過多少閱讀量呢??發布一篇,看看是否重新在51上寫學習博文,有老鐵支持嘛?? 使用kubeadm部署集群 節點名稱 ip地址 部署說明 Pod 網段 Service網段 系統說明

kubernetes網路---Calico原理解讀

Calico簡單簡介 Calico是一個純三層的協議,為OpenStack虛機和Docker容器提供多主機間通訊。Calico不使用重疊網路比如flannel和libnetwork重疊網路驅動, 它是一個純三層的方法,使用虛擬路由代替虛擬交換,每一臺虛擬路由通過BGP協議傳播可達資訊(路由)到剩