Skip to content
Snippets Groups Projects
Commit 68fd7e39 authored by Thomas Nys's avatar Thomas Nys Committed by Kubernetes Prow Robot
Browse files

Set cluster DNS correctly in case of nodelocal dns cache (#3879)

* Set cluster DNS correctly in case of nodelocal dns cache

* Pass in cluster_ip based on dns mode

* Disable nodelocaldns by default

* Fix syntax error

* Fix syntax issue

* Add nodelocadns ip to vars of node installation

* Change location of nodelocaldns_ip

* Try to remove newlines from jinja template

* Add debug for config file

* Move parameter logic outside of template

* Adapt templates after feedback

* Remove debugging
parent a0967613
No related branches found
No related tags found
No related merge requests found
......@@ -122,6 +122,7 @@ dns_mode: coredns
#manual_dns_server: 10.x.x.x
# Enable nodelocal dns cache
enable_nodelocaldns: False
nodelocaldns_ip: 169.254.25.10
# Can be docker_dns, host_resolvconf or none
resolvconf_mode: docker_dns
......
......@@ -10,7 +10,6 @@ dns_prevent_single_point_failure: "{{ 'true' if dns_min_replicas|int > 1 else 'f
# nodelocaldns
nodelocaldns_cpu_requests: 100m
nodelocaldns_ip: 169.254.25.10
nodelocaldns_memory_limit: 170Mi
nodelocaldnsdns_memory_requests: 70Mi
......
---
- name: Kubernetes Apps | set up necessary nodelocaldns parameters
set_fact:
clusterIP: >-
{%- if dns_mode in ['kubedns', 'coredns', 'coredns_dual'] -%}
{{ skydns_server }}
{%- elif dns_mode == 'dnsmasq_kubedns' -%}
{{ dnsmasq_dns_server }}
{%- elif dns_mode == 'manual' -%}
{{ manual_dns_server }}
{%- endif -%}
secondaryclusterIP: "{{ skydns_server_secondary }}"
- name: Kubernetes Apps | Lay Down nodelocaldns Template
template:
src: "{{ item.file }}.j2"
......@@ -9,8 +21,18 @@
- { name: nodelocaldns, file: nodelocaldns-daemonset.yml, type: daemonset }
register: nodelocaldns_manifests
vars:
clusterIP: "{{ skydns_server }}"
secondaryclusterIP: "{{ skydns_server_secondary }}"
forwardTarget: >-
{%- if secondaryclusterIP is defined and dns_mode == 'coredns_dual' -%}
{{ clusterIP }} {{ secondaryclusterIP }}
{%- else -%}
{{ clusterIP }}
{%- endif -%}
upstreamForwardTarget: >-
{%- if resolvconf_mode == 'host_resolvconf' and upstream_dns_servers is defined and upstream_dns_servers|length > 0 -%}
{{ upstream_dns_servers|join(' ') }}
{%- else -%}
/etc/resolv.conf
{%- endif -%}
when:
- enable_nodelocaldns == True
- inventory_hostname == groups['kube-master'] | first
......
......@@ -14,11 +14,7 @@ data:
reload
loop
bind {{ nodelocaldns_ip }}
{% if secondaryclusterIP is defined and dns_mode == 'coredns_dual' %}
forward . {{ clusterIP }} {{ secondaryclusterIP }} {
{% else %}
forward . {{ clusterIP }} {
{% endif %}
forward . {{ forwardTarget }} {
force_tcp
}
prometheus :9253
......@@ -30,11 +26,7 @@ data:
reload
loop
bind {{ nodelocaldns_ip }}
{% if secondaryclusterIP is defined %}
forward . {{ clusterIP }} {{ secondaryclusterIP }} {
{% else %}
forward . {{ clusterIP }} {
{% endif %}
forward . {{ forwardTarget }} {
force_tcp
}
prometheus :9253
......@@ -45,11 +37,7 @@ data:
reload
loop
bind {{ nodelocaldns_ip }}
{% if secondaryclusterIP is defined %}
forward . {{ clusterIP }} {{ secondaryclusterIP }} {
{% else %}
forward . {{ clusterIP }} {
{% endif %}
forward . {{ forwardTarget }} {
force_tcp
}
prometheus :9253
......@@ -60,11 +48,7 @@ data:
reload
loop
bind {{ nodelocaldns_ip }}
{% if resolvconf_mode == 'host_resolvconf' and upstream_dns_servers is defined and upstream_dns_servers|length > 0 %}
forward . {{ upstream_dns_servers|join(' ') }} {
{% else %}
forward . /etc/resolv.conf {
{% endif %}
forward . {{ upstreamForwardTarget }} {
force_tcp
}
prometheus :9253
......
......@@ -76,6 +76,9 @@ KUBELET_HOSTNAME="--hostname-override={{ kube_override_hostname }}"
{% else %}
{% set kubelet_args_cluster_dns %}{% endset %}
{% endif %}
{% if enable_nodelocaldns == True %}
{% set kubelet_args_cluster_dns %}--cluster-dns={{ nodelocaldns_ip }}{% endset %}
{% endif %}
{% set kubelet_args_dns %}{{ kubelet_args_cluster_dns }} --cluster-domain={{ dns_domain }} --resolv-conf={{ kube_resolv_conf }}{% endset %}
{# Kubelet node labels #}
......
......@@ -57,6 +57,7 @@ dns_mode: coredns
# Enable nodelocal dns cache
enable_nodelocaldns: False
nodelocaldns_ip: 169.254.25.10
# Should be set to a cluster IP if using a custom cluster DNS
# manual_dns_server: 10.x.x.x
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment