--- #启动一个deployment
apiVersion: apps/v1 #指定api组
kind: Deployment #指定api类型
metadata: #元数据
name: test-affinity #定义deploy名字
namespace: lnmp #指定名称空间,这个名称空间必须要与想要匹配的pod在同一名称空间
spec: #指定对象规约
replicas: 19 #定义副本集
selector: #定义标签选择器
matchLabels: #定义匹配标签
app: busybox #指定匹配的标签
template: #定义模板
metadata: #元数据
labels: #标签
app: busybox #指定标签
spec: #指定对象规约
affinity: #亲和性配置
podAffinity: #配置Pod亲和性
requiredDuringSchedulingIgnoredDuringExecution: #指定在调度期间必须满足的条件
- labelSelector: #定义标签选择条件
matchExpressions: #定义节点选择条件表达式
- key: lnmp.home.com/name #匹配标签的键
operator: In #定义匹配的操作符
values: #值列表
- nginx #值
topologyKey: topology.kubernetes.io/zone #指定了用于确定节点拓扑区域的键
podAntiAffinity: #配置Pod反亲和性
preferredDuringSchedulingIgnoredDuringExecution: #设置在调度期间的偏好
- weight: 100 #权重值
podAffinityTerm: #定义调度节点的偏好
labelSelector: #定义标签选择条件
matchExpressions: #定义节点选择条件表达式
- key: lnmp.home.com/name #匹配标签的键
operator: In #定义匹配的操作符
values: #值列表
- wordpress #值
topologyKey: topology.kubernetes.io/zone #指定了用于确定节点拓扑区域的键
containers: #定义容器
- name: busybox #定义容器名字
image: harbor.placjh.com/busybox/busybox:1.36 #指定镜像和版本
command: #pod启动命令
- "/bin/sh"
- "-c"
- "sleep 3600"
imagePullPolicy: IfNotPresent #定义镜像拉取策略