Как добавить пользовательский сервер имен в /etc/resolv.conf в модуль? - PullRequest
0 голосов
/ 03 ноября 2019

, какой сервис назначает серверы имен в /etc/resolv.conf модулей, как правило, он должен получить с хоста /etc/resolv.conf, я вижу разные серверы имен в /etc/resolv.conf модулей, если естьконфигурация на kbernetes (kubedns), которую я могу настроить так, чтобы pods /etc/resolv.conf имели 8.8.8.8

Ответы [ 3 ]

1 голос
/ 03 ноября 2019

kube-dns изменяет этот файл. kube-dns наблюдает за сервером API, наблюдает за изменениями в Сервисе и Конечных точках и обновляет записи DNS. Внутри кластера вы должны использовать внутренний Kubernetes DNS.

DNS - это дополнительный контроллер, вы можете использовать любую другую реализацию.

Взгляните здесь .

0 голосов
/ 04 ноября 2019

У вас есть два варианта:

1.- Чтобы поместить его в configMap и сопоставить его с /etc/resolv.conf, в этом случае он будет заменен содержимым в configMap.

2.- Вы можете сделать это:

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: my-pod
spec:
  containers:
    - name: nginx
      image: nginx
  dnsPolicy: "None"
  dnsConfig:
    nameservers:
      - 8.8.8.8

Таким образом, вы отображаете все, что находится в dnsConfig в /etc/resolv.conf

# cat /etc/resolv.conf
nameserver 8.8.8.8

Есть еще одинКстати, путем «взлома» kube-dns, для upstreamNameservers:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-dns
  namespace: kube-system
data:
  upstreamNameservers: |
    ["8.8.8.8", "8.8.4.4"]

Но в этом случае вы ничего не будете делать в модуле (поэтому /etc/resolv.conf не будет изменено),но kube-dns будет использовать эти серверы имен для разрешения.

0 голосов
/ 04 ноября 2019

Начиная с k8s 1.9, если вы хотите установить конкретную конфигурацию DNS для модуля, вы можете использовать Политика DNS Нет. .

Это позволяет модулю игнорировать настройки DNS изКубернетская среда. Все настройки DNS должны предоставляться с использованием поля dnsConfig в спецификации Pod.

по умолчанию, IP-адрес сервера имен - это IP-адрес службы Kubernetes для kube-dns

cat /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

kubectl get service -n kube-system
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP,9153/TCP   2d21h

с этой конфигурациейв разделе развертывания:

  dnsConfig:
    nameservers:
      - 8.8.8.8
  dnsPolicy: "None"

cat /etc/resolv.conf nameserver 8.8.8.8

...