У меня довольно стандартная установка Kubernetes, работающая в Ubuntu как кластер с одним узлом.Я пытаюсь настроить CoreDNS для разрешения всех внутренних служб в моем кластере Kubernetes и НЕКОТОРЫХ внешних доменных имен.Пока что я только что экспериментировал.Я начал с создания модуля busybox, как показано здесь: https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
Все работает, как описано в руководстве, пока я не внесу изменения в corefile.Я вижу пару проблем:
- Я отредактировал основной файл по умолчанию, используя
kubectl -n kube-system edit configmap coredns
, и заменил .:53
на cluster.local:53
.После ожидания все выглядит многообещающе.google.com
разрешение начало сбой, в то время как kubernetes.default.svc.cluster.local
продолжало успешно.Однако разрешение kubernetes.default
тоже начало сбой.Это почему?В /etc/resolv.conf
модуля занятых есть еще search запись для svc.cluster.local
.Все, что изменилось, это corefile. Я попытался добавить дополнительный раздел / блок в corefile (опять же, отредактировав карту конфигурации).Я добавил простой блок:
.:53{
log
}
Кажется, что corefile не может скомпилировать или что-то.Стручки кажутся исправными и не сообщают об ошибках в журналы, но все запросы зависают и терпят неудачу.
Я пытался добавить плагин журнала, но это не работает, так как плагин применяется только к доменам, соответствующим плагину, и либо имя домена не совпадает, либоcorefile не работает.
Для прозрачности это мой новый corefile:
cluster.local:53 {
errors
log
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}