k8s-学习笔记7-调度策略

1 污点、容忍度方法

https://www.cnblogs.com/wmht/p/10968667.html

污点:一个节点有了污点,pod默认无法容忍污点,就不会调度到这个节点上运行

容忍度:pod可以容忍一种污点,就会被调度到有这个污点的节点上运行

# 查看污点
kubectl describe node servicerls2|grep Taint

# 设置污点
kubectl taint nodes node1 key1=value1:NoSchedule

# 去除污点
kubectl taint nodes node1 key1:NoSchedule-

  

有些node是给某些服务专用的,不让普通pod调度上来,就需要设置污点。

比如master,上面有一个node-role.kubernetes.io/master:NoSchedule的污点。一般pod就不会调度上去。

比如prom所在节点,我希望只运行prom,就要设置污点。

但这些节点,对一些监控pod,比如cadvisor、node-expoprter,基础插件,比如flannel,肯定是要接受调度的。这样,这些服务的ds或者dp,就要设置污点容忍。

  tolerations:
  - key: item-name
    value: assistant
    operator: Equal
    effect: NoExecute

  

2 nodeName

让pod运行在指定的node上。比如有些服务在系统内中被调用时是写死地址的,为了不改动代码,迁移到k8s时,就直接在原有的ip:port上映射这个服务。

nodeName: servicerls-1-hd1

  

3 nodeSelector

通过标签选择器,让node运行在一类node上

给node加上标签。表示这类node是用来给java的预发环境调度的

kubectl label node 192.168.174.135 java=rls

  

在服务的dp里加上标签选择器,表示只调度到这类node上

      nodeSelector:
        java: rls

  

posted @ 2020-07-24 10:35  jabbok  阅读(252)  评论(0编辑  收藏  举报