Kubernetes theory
March 26, 2023
DNS Policy
Определяет где будут резолвиться DNS запросы пода.
- Default. Pod наследует конфигурацию разрешения имен от ноды, на которой выполняется;
- ClusterFirst. Запросы перенаправляются DNS сервером (CoreDNS) на другие DNS сервера, ответственные за резолв запрашиваемой в запросе зоны. Данная политика используется по-умолчанию;
- ClusterFirstWithHostNet. Используется для подов с указанием hostNetwork;
- None. Pod игнорирует настройки Kubernetes для подов. В этом случае правила необходимо указывать в спецификации.
Пример настройки пода с кастомными настройками DNS.
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx dnsPolicy: "None" dnsConfig: nameservers: - 192.0.2.1 # this is an example searches: - ns1.svc.cluster-domain.example - my.dns.search.suffix options: - name: ndots value: "2" - name: edns0 EOF
kubectl exec -it dns-example — cat /etc/resolv.conf nameserver 192.0.2.1 search ns1.svc.cluster-domain.example my.dns.search.suffix options ndots:2 edns0