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