Как использовать Cloudflare 1.1.1.1 с Kubernetes DNS

Я хочу использовать серверы имен Cloudflare 1.1.1.1 и 1.0.0.1 в Kubernetes вместе с DNS через TLS. похоже, я могу сделать это, используя core-dns. Мне нужно как-то настроить следующее:

  • IPv4: 1.1.1.1 и 1.0.0.1
  • IPv6: 2606:4700:4700::1111 и 2606:4700:4700::1001
  • Имя сервера TLS: tls.cloudflare-dns.com

Как должен выглядеть мой ConfigMap? Я начал это ниже:

apiVersion: v1
kind: ConfigMap
data:
  upstreamNameservers: |
    ["1.1.1.1", "1.0.0.1"]

person Muhammad Rehan Saeed    schedule 04.02.2019    source источник


Ответы (2)


Вы можете настроить свой core-dns kubectl -n kube-system edit configmap coredns и добавить в конец corefile:

. {
    forward . tls://1.1.1.1 tls://1.0.0.1 {
       tls_servername cloudflare-dns.com
       health_check 5s
    }
    cache 30
}

а затем сохраните новую конфигурацию и перезапустите модули core-dns.

kubectl get pod -n kube-system | grep core-dns | cut -d " " -f1 - | xargs -n1 -P 10 kubectl delete pod -n kube-system

person Nick Rak    schedule 04.02.2019
comment
Есть ли способ сделать это, используя более дружественный ConfigMap? Кроме того, поддерживает ли Core-DNS IPv6? - person Muhammad Rehan Saeed; 04.02.2019
comment
используя kubectl -n kube-system edit configmap coredns вы ipdate configmap, о IPv6 Я так не думаю, потому что Kubernetes не полностью поддерживает IPv6. - person Nick Rak; 04.02.2019
comment
Есть ли способ исправить ConfigMap, чтобы предоставить только те части конфигурации, которые вы хотите изменить? Я хочу сделать это через CI/CD, если это возможно, чтобы сделать вещи повторяемыми, и kubectl edit для этого не подходит. - person Muhammad Rehan Saeed; 07.02.2019
comment
это пространство имен kube-system. поэтому, если вы хотите добавить некоторое обновление CI/CD в эту карту конфигурации, вы должны изменить ее в том месте, где вы храните код для своей инфраструктуры, например, KOPS хранит его в корзине s3 на AWS. если вы не управляете своим пространством имен kube-system, просто обновите текущую настройку, и она будет работать. - person Nick Rak; 07.02.2019

Только ответ Azure AKS

Это скопировано прямо из выпусков Azure AKS.

С kube-dns была недокументированная функция, в которой он поддерживал две карты конфигурации, позволяющие пользователям выполнять переопределения DNS / домены-заглушки и другие настройки. С переходом на CoreDNS эта функциональность была утеряна — CoreDNS поддерживает только одну карту конфигурации. С вышеприведенным исправлением у AKS теперь есть обходной путь, чтобы соответствовать тому же уровню настройки. Вот эквивалент ConfigMap для CoreDNS:

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns-custom
  namespace: kube-system
data:
  azurestack.server: |
    azurestack.local:53 {
        forward . tls://1.1.1.1 tls://1.0.0.1 {
          tls_servername cloudflare-dns.com
          health_check 5s
        }
        cache 30
    }

После создания карты конфигурации вам потребуется удалить развертывание CoreDNS, чтобы принудительно загрузить новую конфигурацию.

kubectl -n kube-system delete po -l k8s-app=kube-dns
person Muhammad Rehan Saeed    schedule 11.02.2019