CoreHA
shturval-coreha - helm-чарт для сервиса CoreDNS для динамического добавления бэкендов в HAProxy. Сервис необходим, если вы используете внешний балансировщик для Ingress. По умолчанию сервис устанавливается в клиентские кластеры в отключенном состоянии.
Для включения в графическом интерфейсе кластера в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите “Модуль поиска узлов с запущенными hostport сервисами” и измените значение переключателя.
Если в кластере такой сервис отсутствует, в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Доступные чарты. На вкладке “shturval” выберите чарт shturval-coreha
и нажмите “Установить”.
Выберите необходимую версию чарта, а также неймспейс kube-system
. После выбора версии чарта в правой части экрана отобразятся доступные “Параметры конфигурации для сервиса” (values). Пропишите в блоке “Спецификация сервиса” необходимые параметры в качестве customvalues.
Обратите внимание! Конфигурация CoreHA дополнительно требует изменения спецификации модуля управления внешними подключениями (shturval-ingress-controller).
В текущем релизе используется CoreHA версии 1.11.4.
Конфигурация helm chart shturval-coreha
Параметр | Описание | Пример |
---|---|---|
config.zoneName |
Имя dns-зоны | cluster-prod01-dc1.shturval |
config.labelKey |
Имя ключа лейбла, по которому сервис будет отслеживать поды. Значение этого ключа будет добавляться в dns запись | ingress.cluster/name |
config.dns_port |
Порт, который будет слушать dns сервер | По умолчанию: 1053 |
config_name |
Имя кастомного файла конфигурации CoreDNS | По умолчанию: shturval-coreha-config |
strictHostPort |
Использовать строгую выборку подов использующих hostPort | По умолчанию: false |
Пример customvalues
config:
zoneName: <ваше значение параметра>
Спецификация модуля управления внешними подключениями
В графическом интерфейсе кластера в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите модуль управления внешними подключениями (shturval-ingress-controller).
В блоке “Спецификация сервиса” пропишите лейбл с ключом ingress.cluster/name
.
Пример customvalues
controller:
labels:
ingress.cluster/name: <ваше значение параметра>
hostPort:
enabled: true
service:
nodePorts:
http: <ваше значение параметра>
https: <ваше значение параметра>
type: NodePort
Параметр | Описание | Тип данных | Пример |
---|---|---|---|
ingress.cluster/name |
Значение лейбла для использования при формировании DNS имени | string | default-nginx |
nodePorts.http |
Порт для подключения по HTTP | int | 30080 |
nodePorts.https |
Порт для подключения по HTTPS | int | 30443 |
Сама запись будет выглядеть как <label_value>
.<namespace>
.<config.zoneName>
, где namespace это пространство подов (ingress) которые необходимо отслеживать. Пример DNS записи default-nginx.ingress.cluster-prod01-dc1.shturval
.
Пример конфигурации HAProxy
resolvers coredns-cluster
nameserver ns1 <api-server-vip>:<config.dns_port>
accepted_payload_size 8192
backend cluster-prod01-dc1-ingress-http
balance source
mode tcp
server-template daemonset 2 <label_value>.<namespace>.<config.zoneName>:30080 check resolvers coredns-cluster init-addr none
haproxy (в примере отсутствует секция frontend и backend для 443 порта)
resolvers coreha-cluster-prod01-dc1
nameserver ns1 api.cluster-prod01-dc1.shturval:1053
accepted_payload_size 8192
backend ingress-http-cluster-prod01-dc1
balance source
mode tcp
server-template ingress 2 default-nginx.ingress.cluster-prod01-dc1.shturval:30080 check resolvers coreha-cluster-prod01-dc1 init-addr none
Чтобы проверить корректность настроек сервиса coreha
, можно c балансировщика воспользоваться командой dig
:
Команда
dig @api.cluster-prod01-dc1.shturval -p 1053 default-nginx.ingress.cluster-prod01-dc1.shturval
Пример вывода команды
;; ANSWER SECTION:
default-nginx.ingress.cluster-prod01-dc1.shturval. 15 IN A 172.18.104.93
default-nginx.ingress.cluster-prod01-dc1.shturval. 15 IN A 172.18.104.92
После завершения настроек Ingress контроллер будет работать на портах узла 30080/30443.