zoukankan      html  css  js  c++  java
  • Kubernetes(k8s)的调度器

    节点亲和性

    pod.spec.nodeAffinity

    • preferredDuringSchedulingIgnoredDuringExecution:软策略
    • requiredDuringSchedulingIgnoredDuringExecution:硬策略

    requiredDuringSchedulingIgnoredDuringExecution

    apiVersion: v1
    kind: Pod
    metadata:
      name: affinity
      labels:
        app: node-affinity-pod
    spec:
      containers:
      - name: with-node-affinity
        image: wangyanglinux/myapp:v1
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: NotIn
                values:
                - node02
    

    preferredDuringSchedulingIgnoredDuringExecution

    apiVersion: v1
    kind: Pod
    metadata:
      name: affinity
      labels:
        app: node-affinity-pod
    spec:
      containers:
      - name: with-node-affinity
        image: wangyanglinux/myapp:v1
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                - node3

    先硬后软

    apiVersion: v1
    kind: Pod
    metadata:
      name: affinity
      labels:
        app: node-affinity-pod
    spec:
      containers:
      - name: with-node-affinity
        image: hub.atguigu.com/library/myapp:v1
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: NotIn
                values:
                - k8s-node02
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: source
                operator: In
                values:
                - qikqiak
    

    键值运算关系

    • In:label 的值在某个列表中
    • NotIn:label 的值不在某个列表中
    • Gt:label 的值大于某个值
    • Lt:label 的值小于某个值
    • Exists:某个 label 存在
    • DoesNotExist:某个 label 不存在
       

     Pod  亲和性

    pod.spec.affinity.podAffinity/podAntiAffinity

    • preferredDuringSchedulingIgnoredDuringExecution:软策略
    • requiredDuringSchedulingIgnoredDuringExecution:硬策略
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-3
      labels:
        app: pod-3
    spec:
      containers:
      - name: pod-3
        image: wangyanglinux/myapp:v1
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - pod-1
            topologyKey: kubernetes.io/hostname
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - pod-2
              topologyKey: kubernetes.io/hostname
    

    亲和性/反亲和性调度策略比较如下:
     

    调度策略匹配 标签 匹配 标签 操作符 拓扑域 支持 调度目标
    nodeAffinity  主机 In, NotIn, Exists, DoesNotExist, Gt, Lt 指向主机
    podAffinity  POD In, NotIn, Exists, DoesNotExist POD与指定POD同一拓 扑域
    podAnitAffinity  POD In, NotIn, Exists, DoesNotExist POD与指定POD不在同 一拓扑域
  • 相关阅读:
    根本解决:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。
    通过SQLServer的数据库邮件来发送邮件
    SQLFullbackup
    vs2015 iis express启动不了及安装DotNetCore.1.0.0-VS2015Tools.Preview2失败的解决方法
    Django1.7+JQuery+Ajax集成小例子
    编译安装带ssl 模块指定版本Python
    细说IIS异常日志 — 你必须知道的功能
    7 MySQL存储过程和函数
    6 MySQL视图
    5 MySQL索引
  • 原文地址:https://www.cnblogs.com/heian99/p/12328959.html
Copyright © 2011-2022 走看看