Thank you for reading this post, don't forget to subscribe!
Для настройки 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 на свои.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 контроллера для своего сервиса
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 сервере, должно присутствовать несколько А записей (зависит от количества нод) с именем сервиса и одна запись ТХТ.