K8S部署pod尽量分散在不同节点node上

由于nlp分词服务属于CPU密集型,所以需要在部署的时候尽量使得pod分散在不同node上,已缓解cpu负载,目前发现线上部署每次发布都会到同一节点上,故如下改造

apiVersion: apps/v1
kind: Deployment
metadata:
  name: shenjian-nlp
  namespace: shenjian-local
spec:
  replicas: 2
  selector:
    matchLabels:
      project: shenjian-nlp
      app: shenjian-local
  template:
    metadata:
      labels:
        project: shenjian-nlp
        app: fangjia-local
        buildId: latest
    spec:
      // 主要以下起作用
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: project // 改为自己标签key
                      operator: In
                      values:
                        - shenjian-nlp // 改为自己的名称值
                topologyKey: kubernetes.io/hostname

欢迎关注公众号算法小生沈健的技术博客

posted @ 2022-10-20 21:04  算法小生  阅读(96)  评论(0编辑  收藏  举报