Цель

Заметки ИТ которые я не хочу потерять

menu_navigation

Kubernetes configuring external-dns

Для настройки DNS имен сервисов воспользуемся проектом external-dns

ссылка по настройке DNS серверов Microsoft
https://github.com/kubernetes-incubator/external-dns/blob/master/docs/tutorials/rfc2136.md

Создайте на своем DNS сервере новую зону третьего уровня, например sb.domain.ru

В настройках зоны во вкладке "Общие", включите "Динамическое обновление" - "Небезопасные и безопасные".
Во вкладке "Передачи зон" выберите "Разрешить передачи зон" - "Только на серверы из этого списка" и укажите адреса нод кластера kubernetes.

Далее на мастер ноде выполните helm chart, изменив параметры rfc2136.host, rfc2136.zone, domainFilters на свои.
helm install --namespace dns stable/external-dns --name external-dns --set \
rbac.create=true,\
provider=rfc2136,\
source[0]=ingress,\
rfc2136.host=192.168.10.13,\
rfc2136.port=53,\
rfc2136.zone=sb.domain.ru,\
rfc2136.tsigSecretAlg=hmac-sha256,\
rfc2136.tsigKeyname=externaldns-key,\
rfc2136.tsigAxfr=true,\
interval=1m,\
policy=sync,\
domainFilters[0]=sb.domain.ru,\
logLevel=info

в gitlab добавьте файл ingress контроллера для своего сервиса
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: SERVICE_NAME
  namespace: KUBE_NAMESPACE
  labels:
    app: SERVICE_NAME
spec:
  rules:
  - host: SERVICE_NAME-sb.domain.ru
    http:
      paths:
      - path: /
        backend:
          serviceName: SERVICE_NAME
          servicePort: 8080

Проверьте созданные записи на DNS сервере, должно присутствовать несколько А записей (зависит от количества нод) с именем сервиса и одна запись ТХТ.

Комментариев нет:

Отправить комментарий