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