При использовании диаграмм helm для развертывания службы с балансировкой нагрузки nginx, как должен выглядеть helm values.yaml? - PullRequest
1 голос
/ 28 апреля 2020

Я начинающий Хелм и Кубернетес в целом. Недавно я начал испытывать развертывания в кластере AKS, который будет включать несколько IP-сервисов кластера, скрытых за узлом балансировки нагрузки NGINX. На сегодняшний день я использую Helm 2.2 и успешно установил узел NGINX. Теперь я понимаю, что для каждой из моих индивидуальных сервисных диаграмм в Helm я использую аннотации для включения Nginx маршрутизации. На мой взгляд, я должен иметь возможность изменить файл values.yaml в верхней части диаграммы (больше нигде) для выполнения этих действий.

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: true
  annotations: 
    kubernetes.io/ingress.class: nginx
  hosts:
    - chart-example.local

Когда я выполняю вышеизложенное (остальная часть файла исключена для краткости), я получаю сообщение об ошибке «преобразование YAML в JSON: yaml: строка 38: не найден ожидаемый ключ».

Строка 38 соответствует концу входной секции (пустой строке сразу после). Я предполагаю, что мой yaml плохо сформирован, и я не могу на всю жизнь найти примеры использования этого файла таким способом. Я делаю это правильно? Если да, то какую ошибку я сделал в ямле. Если нет, что я должен делать, чтобы маршрутизировать один из моих многочисленных сервисов через входной файл? Существуют ли какие-либо реальные примеры установки файла values.yaml в этом варианте, чтобы его можно было увидеть где-нибудь? Каждый раз, когда я ищу, я обнаруживаю, что файл Ingress.yaml изменяется как объект Kubernetes, а не как шаблонная диаграмма Хелма.

1 Ответ

1 голос
/ 30 апреля 2020

Оказывается, с помощью values.yaml я не дал людям справедливых шансов. Оскорбительная строка yaml произошла после фрагмента кода, который я предоставил, и была тонкой. Код, который был необходим для обеспечения правильного определения входного файла, был таким:

ingress:
enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
  hosts:
    - host: chart-example.local
      paths:
        - /test

  tls: {}

Моя ошибка заключалась в появившейся после этого строке tls. Я упустил из виду, что отступ в секции tls означал, что она была включена во входную секцию, и в ней было одно пропущенное пространство .

_tls: {}

вместо

 __tls: {}

Мой пример теперь корректно отображает шаблон (подчеркивания включены только для демонстрации количества пробелов и, конечно, должны быть удалены).

...