k8s 集群调度

关于调度

k8s内pod由scheduler调度,scheduler的任务是把pod分配到合适的node节点上。scheduler调度时会考虑到node节点的资源使用情况、port使用情况、volume使用情况等等...在此基础之上,我们也可以控制pod的调度。

亲和性

亲和性分为节点亲和与pod亲和,亲和策略分类软策略与硬策略。

节点亲和

apiVersion: v1
kind: Pod
metadata:
  name: node-affinity
  namespace: test
spec:
  containers:
  - name: nginx-pod
    image: nginx:latest
  affinity:
    # 节点亲和
    nodeAffinity:
      # 硬策略,条件必须成立
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        # 要调度到node的标签是kubernetes.io/hostname=node01的节点上
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - node01
      # 软策略,条件尽量要成立
      preferredDuringSchedulingIgnoredDuringExecution:
      # 多个软策略的权重,范围在1-100内,越大计算的得分越高
      - weight: 1
        preference:
          matchExpressions:
          # 要调度到node的标签是area=beijing的节点上
          - key: area
            operator: In
            values:
            - beijing

pod亲和常用于避免相同类型的pod调度相同的节点上。

apiVersion: v1
kind: Pod
metadata:
  name: pod-affinity
  namespace: test
spec:
  containers:
  - name: nginx-pod
    image: nginx:latest
  affinity:
    # pod亲和 要求与指定的pod在同一个拓扑域
    podAffinity:
      # 硬策略
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - nginx01
        # 拓扑域(node上的标签key)
        topologyKey: kubernetes.io/hostname
    # pod亲和 要求与指定的pod不在同一个拓扑域
    podAntiAffinity:
      # 软策略
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - nginx01
          # 拓扑域(node上的标签key)
          topologyKey: kubernetes.io/hostname

污点

通过kubctl taint命令可以给某一个node节点设置污点,node上设置了污点之后,可以上node拒绝pod的调度,甚至可以将node上已经存在的pod驱逐出去。

污点可以用于集群节点迁移准备工作,通过打污点来使当前节点上的pod迁移出去。k8s 的master节点自带污点。

污点的组成为key=value:effect,effect有以下三个选项:

  • NoSchedule:k8s不会把pod调度到该节点上
  • PreferNoSchedule:k8s尽量不会把pod调度到该节点上
  • NoExecute:k8s不会把pod调度到该节点上,同时会把已有节点驱逐出去
#设置污点
kubectl taint nodes node1 key1=value1:NoSchedule
#去除污点
kubectl taint nodes node1 key1:NoSchedule-

容忍

pod可以设置容忍,代表此pod可以容忍某个污点的存在。

pod.spec.tolerations

tolerations:
- key: "key1"
  operator: " Equal"
  value: "value1"
  effect: "NoSchedule"
  tolerationSeconds: 3600
- key: "key1"
  operator: "Equal"
  value: "value1"
  effect: "NoExecute"
- key: "key2"
  operator: "Exists"
  effect: "NoSchedule"
  • 其中key,vaule,effect要与Node中设置的taint保持一致
  • operator 的值为Exists将会忽略value值
  • tolerationSeconds 用于描述当Pod需要被驱逐时可以在Pod上继续保留运行的时间

k8s的namespace可以提供资源的逻辑隔离,但是无法提供物理隔离。物理隔离可以通过污点与容忍来做。

比如想隔离不同产品线的服务,可以提前给node打上不同的污点,不同的产品线的pod容忍对应的污点即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341