陈佳浩
陈佳浩
发布于 2024-08-17 / 40 阅读
0
0

配置Pod亲和性与反亲和性

--- #启动一个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     #定义镜像拉取策略


评论