Т.к. dcape разворачивает несколько независимых сервисов, их имена должны быть зарегистрированы в DNS. Предпочтительным является вариант регистрации wildcard DNS record, но можно и регистрировать индивидуально.
Пример имен для сервера srv1.domain.tld
:
srv1.domain.tld
- для фронтендов narra, enfist, traefikgit.srv1.domain.tld
- для giteadrone.srv1.domain.tld
- для droneport.srv1.domain.tld
- для portainerns.srv1.domain.tld
- для powerdns
/etc/hosts
Вариант для случая, когда dcape разворачивается и используется на локальном компьютере, в т.ч. если у этого компьютера нет сетевых интерфейсов.
Т.к. сервисы dcape общаются между собой, их hostname нельзя привязать к loopback
- интерфейсу. В качестве ip-адреса можно использовать шлюз подсети dcape, которая задается параметром DCAPE_SUBNET
(по умолчанию, подсеть - 100.127.0.0/24 и шлюз - 100.127.0.1):
|
|
dnsmasq
В случае использования локальной сети, когда известен ip-адрес компьютера с dcape (в примере - 192.168.1.2) и установлен DNS-сервер dnsmasq, можно создать локальный wildcard-domain:
|
|
DNS зона
При наличии доступ к управления DNS-сервером и если хост с dcape имеет внешний ip-адрес (в примере - 19.72.10.23), имена могут быть зарегистрированы одним из следующих способов:
индивидуальная регистрация
srv1.domain.tld. A 19.72.10.23
git.srv1.domain.tld. A 19.72.10.23
cicd.srv1.domain.tld. A 19.72.10.23
port.srv1.domain.tld. A 19.72.10.23
ns.srv1.domain.tld. A 19.72.10.23
wildcard DNS record
srv1.domain.tld. A 19.72.10.23
*.srv1.domain.tld. A 19.72.10.23
wildcard DNS record с делегированием зоны
В процессе регистрации wildcard сертификатов traefik производит изменения в DNS-зоне через АПИ DNS-сервера. Чтобы не давать ему доступ к основной DNS-зоне, можно для каждого сервера создать выделенную зону (в примере - srv1.domain.tld
) и директивой CNAME
делегировать управление сертификатами этой зоны отдельному серверу (в примере - серверу ns.srv1.domain.tld
, т.е. локальному DNS). Используемая в dcape v2 версия traefik это уже поддерживает.
srv1.domain.tld. A 19.72.10.23
*.srv1.domain.tld. A 19.72.10.23
acme-srv1.domain.tld. NS ns.srv1.domain.tld
_acme-challenge.srv1.domain.tld. CNAME acme-srv1.domain.tld
_acme-challenge.*.srv1.domain.tld. CNAME acme-srv1.domain.tld
Команда инициализации dcape для этого примера:
|
|
В PDNS_LISTEN
порт изменен на стандартный (по умолчанию: 54) и задан ip, чтобы не возникало конфликта с локальным резолвером.
См. также: настройка связки taefik-powerdns для DNS=wild