经过命令行,建立两个个deployment。node
– 须要集群中有2个节点nginx
– 第1个deployment名称为<hwcka-002-app1>,使用nginx镜像,用有2个pod,并配置该deployment自身的pod之间在节点级别反亲和算法
topologyKey配置相同kubernetes.io/zone=bar,podAffinityvim
那么:node01和node02为同一总体,因此没有其余规则的话,根据平均负载算法会将其分配至两个节点上,若是目前其中一个节点空闲,那么pod可能会被分配到空闲节点上去。app
topologyKey配置相同kubernetes.io/hostname,podAffinityspa
那么:node01和node02为不一样总体,因为亲和性规则,因此pod会根据空闲或其余算法被调度到同一节点上去。命令行
topologyKey配置相同kubernetes.io/zone=bar,podAntiAffinity3d
那么:nodw01和node02为同一总体,那么一个pod被调度其中一个节点后,因为存在反亲和,那么另外一个pod是不会被调度到另外一个节点上去到。code
topologyKey配置相同kubernetes.io/hostname,podAntiAffinityblog
那么:node01和node02为不一样总体,因为反亲和性规则,pod会被分配到不一样节点并运行。
相关操做:
# 打标签
kubectl label nodes node01 kubernetes.io/zone=bar kubectl label nodes node02 kubernetes.io/zone=bar
# 删除标签
kubectl label nodes node01 kubernetes.io/zone-
kubectl label nodes node02 kubernetes.io/zone- vim hwcka-002-app1.yaml topologyKey: kubernetes.io/zone 或者 topologyKey: kubernetes.io/hostname