在无头服务上设置NodeAffinity的问题

时间:2019-09-08 14:32:40

标签: kubernetes kubectl azure-aks

在遵循本教程(https://portworx.com/run-ha-kafka-azure-kubernetes-service/)以在Azure Kubernetes服务上设置Kafka群集之后,我遇到了部署无头Zookeeper服务的问题。

使用kubectl运行这个yml来部署Zookeeper服务,我得到下面的错误。

apiVersion: v1
kind: Service
metadata:
  name: zk-headless
nodeAffinity:  labels:
    app: zk-headless
spec:
  ports:
  - port: 2888
    name: server
  - port: 3888
    name: leader-election
  clusterIP: None
  selector:
    app: zk
error converting YAML to JSON: yaml: line 5: mapping values are not allowed in this context

我的问题是,如何分配nodeAffinity值?我应该使用这个:

requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:

2 个答案:

答案 0 :(得分:2)

Kubernetes Service对象没有nodeAffinity字段,因为Service资源不在节点上运行。实际上,它们根本不“运行”-它们是联网的规则。

网站上提供的示例在那里存在复制粘贴错误。应该是:

apiVersion: v1
kind: Service
metadata:
  name: zk-headless
  labels:
    app: zk-headless
spec:
  ports:
    - port: 2888
      name: server
    - port: 3888
      name: leader-election
  clusterIP: None
  selector:
    app: zk

答案 1 :(得分:0)

除了Utku的答案-我建议使用“ kubectl解释服务”命令来查看可以将哪些字段添加到kubernetes对象中,例如服务或部署或Pod