Документация находится в разработке, может содержать неполную информацию.
Для установки компонентов CoreDNS и управления DNS можно воспользоваться функциональностью модуля kube-dns.
Модуль удаляет ранее созданные с помощью kubeadm ресурсы: Deployment, ConfigMap и RBAC для CoreDNS.
Чтобы включить модуль kube-dns с настройками по умолчанию, примените ресурс ModuleConfig
:
d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: kube-dns
spec:
enabled: true
EOF
Настройки модуля kube-dns подробно описаны на отдельной странице документации.
Пример конфигурации DNS
Пример конфигурации модуля kube-dns с помощью ресурса ModuleConfig:
d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: kube-dns
spec:
version: 1
enabled: true
settings:
# Список IP-адресов рекурсивных DNS-серверов, которые CoreDNS будет использовать для разрешения внешних доменов.
# По умолчанию используется список из /etc/resolv.conf.
upstreamNameservers:
- 8.8.8.8
- 8.8.4.4
# Статический список хостов в стиле /etc/hosts:
hosts:
- domain: one.example.com
ip: 192.168.0.1
- domain: two.another.example.com
ip: 10.10.0.128
# Список дополнительных зон для обслуживания CoreDNS.
stubZones:
- zone: consul.local
upstreamNameservers:
- 10.150.0.1
# Список альтернативных доменов кластера, разрешаемых наравне с global.discovery.clusterDomain.
clusterDomainAliases:
- foo.bar
- baz.qux
EOF
Настройки модуля kube-dns подробно описаны на отдельной странице документации.
Изменение домена кластера
Чтобы изменить домен кластера с минимальным простоем, выполните следующие шаги:
-
Отредактируйте настройки модуля control-plane manager, который отвечает за конфигурацию Deckhouse.
Внесите изменения в секции по шаблону ниже:
apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: control-plane-manager spec: version: 1 enabled: true settings: apiserver: # Список опций сертификата SANs, с которыми будет сгенерирован сертификат API-сервера. certSANs: - kubernetes.default.svc.<старый clusterDomain> - kubernetes.default.svc.<новый clusterDomain> serviceAccount: # Список API audience’ов, которые следует добавить при создании токенов ServiceAccount. additionalAPIAudiences: - https://kubernetes.default.svc.<старый clusterDomain> - https://kubernetes.default.svc.<новый clusterDomain> # Список дополнительных издателей API токенов ServiceAccount, которые нужно включить при их создании. additionalAPIIssuers: - https://kubernetes.default.svc.<старый clusterDomain> - https://kubernetes.default.svc.<новый clusterDomain>
-
Укажите список альтернативных доменов кластера в настройках модуля kube-dns:
apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: kube-dns spec: version: 1 enabled: true settings: clusterDomainAliases: - <старый clusterDomain> - <новый clusterDomain>
- Дождитесь перезапуска
kube-apiserver
. - Поменяйте
clusterDomain
на новый домен вdhctl config edit cluster-configuration
.