部署亲和力

Zam*_*awy 5 affinity kubernetes

我有 3 个节点的 k8s 集群

我想要一个包含 3 个副本的示例部署,如下所示,以便每个 Pod 都安排在不同的节点中?

apiVersion: apps/v1 kind: Deployment metadata:   name: tomcat-deployment   labels:
    app: tomcat spec:   replicas: 3   selector:
    matchLabels:
      app: tomcat   template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat:9.0
        ports:
        - containerPort: 80
Run Code Online (Sandbox Code Playgroud)

Han*_* Du 6

您可以使用 podAntiAffinity 来确保部署的相同 Pod 永远不应在同一节点上运行(取决于拓扑)。查看以下文档将 Pod 分配给节点

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-deployment
  labels:
    app: tomcat
spec:
  replicas: 3
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat:9.0
        ports:
        - containerPort: 80
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: "app"
                operator: In
                values:
                - tomcat
            topologyKey: "kubernetes.io/hostname"
Run Code Online (Sandbox Code Playgroud)