Kubernetes常见优化之Node/Pod亲和

为了使kubernetes更高效更稳定,往往需要针对操作系统层或Kubernetes本身在内存调度策略、磁盘使用策略、网络策略等方面进行优化,本节内容将讲述如何针对节点亲和性和Pod亲和性进行优化。

亲和性调度可以分成软策略和硬策略两种方式:

  • 软策略是指在没有满足调度要求的节点的时候,pod将忽略这条规则,继续完成调度过程,即:能满足条件最好,不满足也无所谓
  • 硬策略是指必须存在满足条件的节点,否则pod将无法部署(为pendding状态),直到发现满足条件的节点,即:必须满足指定要求

软硬策略实例:

节点亲和性(nodeAffinity)

节点亲和性是用于控制pod部署在指定的node的机制,以label值为匹配逻辑,Kubernetes提供:

操作符 说明
In label值在指定列表中
NotIn label值不在指定列表中
Gt label值大于指定值
Lt label值小于指定值
Exists label存在
DoesNotExist label不存在

此外,还可以将指定的node标记为“污点(taints)”,除非pod也被标识为可以容忍污节点,否则该Taints节点上将不会部署pod,标记污节点的命令:

此时,如果需要将某pod部署到node1,则需配置为:

Pod亲和性(podAffinity)

Pod亲和性用于控制pod可以和指定的pod可以部署在同一个拓扑域中,另外一个概念是pod反亲和性,则是表示控制pod不能和指定的pod部署在同一个拓扑域中。

举个pod亲和例子:

举个pop反亲和例子:

原创文章禁止转载:技术学堂 » Kubernetes常见优化之Node/Pod亲和

精彩评论

1+6=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏