# Workload-Node Anti-Affinity

#### Using the CCE Console

1. When Creating a Deployment or Creating a StatefulSet, in the Scheduling Policies area on the Configure Advanced Settings page, choose Workload-Node Affinity and Anti-affinity > Anti-affinity with Nodes > Add.
2. Select the node on which the workload is ineligible to be deployed, and click OK.

   If you select multiple nodes, the workload will not be deployed on these nodes.

#### Using kubectl

This section uses Nginx as an example to describe how to create a workload using kubectl.

Prerequisites

The ECS where the kubectl client runs has been connected to your cluster. For details, see Connecting to a Cluster Using kubectl.

Procedure

When using kubectl to create a Deployment or using kubectl to create a StatefulSet, configure workload-node affinity. The following is an example YAML file for workload-node anti-affinity.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx
            imagePullPolicy: Always
            name: nginx
          imagePullSecrets:
          - name: default-secret
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: nodeName          #node's label key
                    operator: NotIn        #Indicates that the workload will not be deployed on the node.
                    values:
                    - test-node-1          #node's label value

#### Setting the Object Type After Creating a Workload

1. Log in to the CCE console and choose Workloads > Deployments or Workloads > StatefulSets in the navigation pane.
2. Click the name of the workload for which you will add a scheduling policy. On the workload details page, choose Scheduling Policies > Add Simple Scheduling Policy > Add Anti-affinity Object.
3. Set Object Type to Node and select the node on which the workload is ineligible to be deployed. The workload will be constrained from being deployed on the selected node.

   This method can be used to add, edit, or delete scheduling policies.

Parent topic: Simple Scheduling Policies