* Add support for running a nodelocal dns cache
After encountering dns issues in a cluster I was recently working on I
noticed Kubernetes 1.13 introduced support for running a nodelocal dns
cache.
I believe this can usefull for more people.
73b548db06
https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0030-nodelocal-dns-cache.md
* Add requested changes
* Add additional requested changes + documentation
* Add requested changes after review
* Replace incorrect variable
88 lines
2.2 KiB
YAML
88 lines
2.2 KiB
YAML
---
|
|
- name: Kubernetes Apps | Wait for kube-apiserver
|
|
uri:
|
|
url: "{{ kube_apiserver_endpoint }}/healthz"
|
|
validate_certs: no
|
|
client_cert: "{{ kube_apiserver_client_cert }}"
|
|
client_key: "{{ kube_apiserver_client_key }}"
|
|
register: result
|
|
until: result.status == 200
|
|
retries: 10
|
|
delay: 2
|
|
when: inventory_hostname == groups['kube-master'][0]
|
|
|
|
- name: Kubernetes Apps | Cleanup DNS
|
|
import_tasks: tasks/cleanup_dns.yml
|
|
when:
|
|
- inventory_hostname == groups['kube-master'][0]
|
|
tags:
|
|
- upgrade
|
|
- dnsmasq
|
|
- coredns
|
|
- kubedns
|
|
- nodelocaldns
|
|
|
|
- name: Kubernetes Apps | CoreDNS
|
|
import_tasks: "tasks/coredns.yml"
|
|
when:
|
|
- dns_mode in ['coredns', 'coredns_dual']
|
|
- inventory_hostname == groups['kube-master'][0]
|
|
tags:
|
|
- coredns
|
|
|
|
- name: Kubernetes Apps | nodelocalDNS
|
|
import_tasks: "tasks/nodelocaldns.yml"
|
|
when:
|
|
- enable_nodelocaldns == True
|
|
- inventory_hostname == groups['kube-master'] | first
|
|
tags:
|
|
- nodelocaldns
|
|
|
|
- name: Kubernetes Apps | KubeDNS
|
|
import_tasks: "tasks/kubedns.yml"
|
|
when:
|
|
- dns_mode in ['kubedns', 'dnsmasq_kubedns']
|
|
- inventory_hostname == groups['kube-master'][0]
|
|
tags:
|
|
- dnsmasq
|
|
|
|
- name: Kubernetes Apps | Start Resources
|
|
kube:
|
|
name: "{{ item.item.name }}"
|
|
namespace: "kube-system"
|
|
kubectl: "{{ bin_dir }}/kubectl"
|
|
resource: "{{ item.item.type }}"
|
|
filename: "{{ kube_config_dir }}/{{ item.item.file }}"
|
|
state: "latest"
|
|
with_items:
|
|
- "{{ kubedns_manifests.results | default({}) }}"
|
|
- "{{ coredns_manifests.results | default({}) }}"
|
|
- "{{ coredns_secondary_manifests.results | default({}) }}"
|
|
- "{{ nodelocaldns_manifests.results | default({}) }}"
|
|
when:
|
|
- dns_mode != 'none'
|
|
- inventory_hostname == groups['kube-master'][0]
|
|
- not item is skipped
|
|
register: resource_result
|
|
until: resource_result is succeeded
|
|
retries: 4
|
|
delay: 5
|
|
tags:
|
|
- dnsmasq
|
|
- coredns
|
|
- kubedns
|
|
- nodelocaldns
|
|
loop_control:
|
|
label: "{{ item.item.file }}"
|
|
|
|
- name: Kubernetes Apps | Netchecker
|
|
import_tasks: tasks/netchecker.yml
|
|
when: deploy_netchecker
|
|
tags:
|
|
- netchecker
|
|
|
|
- name: Kubernetes Apps | Dashboard
|
|
import_tasks: tasks/dashboard.yml
|
|
when: dashboard_enabled
|
|
tags:
|
|
- dashboard
|