Проблема с настройкой NodeAffinity на безголовой службе

Следуя этому руководству ( https://portworx.com/run-ha-kafka-azure-kubernetes-service/) для настройки кластера Kafka в службе Azure Kubernetes, у меня возникла проблема с развертыванием службы Headless Zookeeper.

Запустив этот yml с kubectl для развертывания службы 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:

person andy    schedule 08.09.2019    source источник


Ответы (2)


Объекты Service Kubernetes не имеют поля 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
person Utku Özdemir    schedule 08.09.2019
comment
Это имеет смысл. Спасибо! - person andy; 08.09.2019

В дополнение к ответу Утку - я бы рекомендовал использовать команду «kubectl объясните службу», чтобы увидеть, какие поля можно добавить к объекту kubernetes, такому как служба, развертывание или Pod.

person Gowtham    schedule 09.09.2019