zoukankan      html  css  js  c++  java
  • [kubernetes集群调度]

    节点亲和性

    pod.spec.nodeAffinity:

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

    requiredDuringSchedulingIgnoredDuringExecution:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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: <br>   preferredDuringSchedulingIgnoredDuringExecution:
       - weight: 1
        preference:
         matchExpressions:
         - key: source
         operator: In
         values:
         - qikqiak

    合体

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    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:硬策略
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    apiVersion: v1
    kind: Pod
    metadata:
     name: pod-3
     labels:
      app: pod-3
    spec:
     containers:
     - name: pod-3
      image: hub.atguigu.com/library/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不在同
    一拓扑域
  • 相关阅读:
    实战MEF(4):搜索范围
    实战MEF(3):只导出类的成员
    Mac 配置 php-fpm 时出现'/private/etc/php-fpm.conf': No such file or directory (2)
    如何实现在H5里调起高德地图APP?
    PHPExcel 基本用法详解
    最简单的css实现页面宽度自适应
    去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
    SQLyog恢复数据库报错解决方法【Error Code: 2006
    解决svn log显示no author,no date的方法之一
    Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
  • 原文地址:https://www.cnblogs.com/uvwill/p/12940478.html
Copyright © 2011-2022 走看看