c语言sscanf函数的用法是什么
239
2022-09-09
K8s资源调度和亲和性
调度
nodeselector:
硬限制强匹配,如果没有无法启动,默认节点有一部分标签,比如:kubernetes.io/hostname
亲和性调度(越来越完善代替nodeselector)
1.节点亲和性调度
1.类型
1.RequiredDuringScheduleingIgnoredDuringExecution
类似nodeselector,必须满足指定规则才可以调度pod到node,相当于硬限制
2.PreferredDuringScheduleingIgnoredDuringExecution
强调优先满足调度条件,会尝试调度至其他node,不强求,软限制。多个优先级规则可设置权重值(weight),定义执行的先后顺序。
3.IgnoredDuringExecution
如果pod运行的node节点标签发生变化,不再符合当前亲和性要求,忽略该变化,继续运行在node上。
2.语法
1.NodeAffinity语法支持的操作符包含In,NotIn,Exists,DoesNotExist,Gt,Lt.没有节点排斥,但是NotIn和DoseNotExist可以灵活使用满足排斥。
3.注意事项
1.NodeSeclector和NodeAffinity同时使用时,必须全部满足才会运行指定node
2.NodeAffinity指定了多个NodeSelectorTerms,只要满足一个能匹配成功即可
3.如果一个NodeSelectorTerms有多个matchExpressions,必须全部满足所有的matchExpressions才能运行Pod。
4.示例
apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoreDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: amd64 preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: exam-label operator: In values: ssd containers: - name: with-node-affinity image: gcr.io/google_containers/pause:2.0
2.pod亲和性调度
简单来讲,如果在标签X的节点上运行一个或多个符合条件Y的Pod,那么Pod亲和运行互斥拒绝在改Node上。与节点不同,Pod是属于ns的,所以Y表达的是ns级别的label Selector。
1.类型
1.RequiredDuringScheduleingIgnoredDuringExecution2.PreferredDuringScheduleingIgnoredDuringExecution
这里和上面一样就不详细介绍了,懒--
2.语法
1.支持的语法一样包含In,NotIn,Exists,DoesNotExist,Gt.Lt。这里介绍下topologyKey,
1.topologyKey可以使用任何合法的标签Key来赋值。但有以下限制要注意:
1.在PodAffinity和PodAntiAffinity定义中,不允许使用空的topologyKey.
2.如果Admission controller包含了LimitPodHardAntiAffinityTopology,那么KEY就被锁定使用kubernetes.io/hostname,不能随意自定义key.
3.在优先级的定义中,空的topologykey值会定义为hostname,zone,region的组合(具体百度)
2.除了设置Label Selector和topologyKey.还可以指定NS列表进行限制,如果NS为(“”),表示所有NS
3.示例
apiVersion: v1 kind: Pod metadata: name: anti-affinity spec: affinity: podAffinity: requiredDuringScheduleingIgnoredDuringExecution: - labelSelector: matchExperssions: - key: security operator: In values: X topologyKey: failure-domain.beta.kubernetes.io/zone podAntiAffinity: requiredDuringScheduleingIgnoredDuringExecution: - labelSelector: matchExperssions: - key: security operator: In values: Y topologyKey: kubernetes.io/hostname containers: - name: anti-affinity image: gcr.io/google_containers/pause:2.0
要求新Pod于security=X的pod在同一个zone,但是不与security=Y的pod在同一个Node
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~