У меня довольно стандартная установка Kubernetes, работающая как одноузловой кластер на Ubuntu. Я пытаюсь настроить CoreDNS для разрешения всех внутренних служб в моем кластере Kubernetes и НЕКОТОРЫХ внешних доменных имен. Пока что просто экспериментирую. Я начал с создания модуля busybox, как показано здесь: https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
Все работает, как описано в руководстве, пока я не внесу изменения в основной файл. Я вижу несколько проблем:
- Я отредактировал основной файл по умолчанию, используя
kubectl -n kube-system edit configmap coredns
, и заменил.:53
наcluster.local:53
. После ожидания все выглядит многообещающим.google.com
разрешение начало давать сбой, аkubernetes.default.svc.cluster.local
продолжало приносить успех. Однакоkubernetes.default
разрешение тоже начало глючить. Это почему? В модуле занятости/etc/resolv.conf
все еще есть поиск дляsvc.cluster.local
. Изменилось только corefile. Я попытался добавить дополнительный раздел / блок в основной файл (опять же, отредактировав карту конфигурации). Я добавил простой блок:
.:53{ log }
Кажется, что 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
}