c语言sscanf函数的用法是什么
337
2022-10-24
nodeAffinity配置报错got "array", expected "map"
测试pod和node的反亲和性
#保证每个节点上不超过两个redis的pod,并且优先部署在可用区az2和az3中 apiVersion: apps/v1 kind: Deployment metadata: name: redis-cache spec: selector: matchLabels: app: store replicas: 2 template: metadata: labels: app: store spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - store topologyKey: "kubernetes.io/hostname" nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: matchExpressions: #关于pod的matchExpressions是多个条件必须同时满足才会调度 - key: topology.kubernetes.io/zone operator: In values: - az1 matchExpressions: #关于pod的matchExpressions是多个条件必须同时满足才会调度 - key: topology.kubernetes.io/region operator: In values: - east imagePullSecrets: - name: willregistry containers: - name: redis-server image: harbor.yunhw.com/localpublic/redis --- #保证每个节点上不超过两个nginx的pod,并且要跟redis的pod部署在相同节点上 apiVersion: apps/v1 kind: Deployment metadata: name: web-server spec: selector: matchLabels: app: web-store replicas: 3 template: metadata: labels: app: web-store spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: #requiredDuringSchedulingIgnoredDuringExecution - labelSelector: matchExpressions: - key: app operator: In values: - web-store topologyKey: "kubernetes.io/hostname" podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - store topologyKey: "kubernetes.io/hostname" imagePullSecrets: - name: willregistry containers: - name: web-app image: harbor.yunhw.com/localpublic/nginx
出现如下报错
[root@k8s-master01 nodeAndPodAffinity]# k create -f podAffnityTest1.yaml error: error validating "podAffnityTest1.yaml": error validating data: ValidationError(Deployment.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution): invalid type for io.k8s.api.core.v1.NodeSelector: got "array", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false[root@k8s-master01 nodeAndPodAffinity]#
看了半天才发现 - nodeSelectorTerms:这里多了一个短杠
nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: matchExpressions: #关于pod的matchExpressions是多个条件必须同时满足才会调度 - key: topology.kubernetes.io/zone operator: In values: - az1 matchExpressions: #这里这个matchExpressions多余了,只写一个就行了,因为一个matchExpressions就可以配置多个key - key: topology.kubernetes.io/region operator: In values: - east
修改后的nodeAffinity部分为:
nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: #关于pod的matchExpressions是多个条件必须同时满足才会调度 - key: topology.kubernetes.io/zone #保证pod被调度到zone:az1的节点上 operator: In values: - az1 - key: topology.kubernetes.io/region #保证pod被调度到region:east的节点上去 operator: In values: - east
重新测试则顺利创建并调度成功。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~