您当前的位置: 首页 >  kubernetes
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

kubernetes视频教程笔记 (26)-集群调度-节点亲和性

软件工程小施同学 发布时间:2020-12-07 18:41:20 ,浏览量:0

 

一、节点亲和性 1. pod.spec.nodeAffinity
  • preferredDuringSchedulingIgnoredDuringExecution:软策略
  • requiredDuringSchedulingIgnoredDuringExecution:硬策略

 

2. requiredDuringSchedulingIgnoredDuringExecution
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

 

 

 

 

 

 

3. preferredDuringSchedulingIgnoredDuringExecution
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:
   preferredDuringSchedulingIgnoredDuringExecution:
   - weight: 1
     preference:
      matchExpressions:
      - key: source
        operator: In
        values:
        - qikqiak

 

 

 

 

 

 

 

 

4. 合体
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

 

如果nodeSelectorTerms下面有多个选项的话,满足任何一个条件就可以了;

如果matchExpressions有多个选项的话,就必须同时满足这些条件才能正常调度pod

 

 

5. 键值运算关系
  • In:label 的值在某个列表中
  • NotIn:label 的值不在某个列表中
  • Gt:label 的值大于某个值
  • Lt:label 的值小于某个值
  • Exists:某个 label 存在
  • DoesNotExist:某个 label 不存在

 

二、Pod 亲和性(Pod和Pod之间) 1. 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: 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

内容来自https://study.163.com/course/courseMain.htm?courseId=1209568805

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0417s