The module is enabled by default in the Default bundle. The module is disabled by default in the following bundles: Managed, Minimal.

How to explicitly enable the module…

Set the spec.enabled module parameter to true or false in the ModuleConfig/node-local-dns resource (create it, if necessary) to explicitly enable or disable the module, or use the deckhouse-controller module command in the d8-system/deckhouse pod.

Example of enabling the module:

  • by using the ModuleConfig resource:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: node-local-dns
    spec:
      enabled: true
    
  • by using the deckhouse-controller command (you need a kubectl, configured to work with the cluster):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module enable node-local-dns
    

Example of disabling the module:

  • by using the ModuleConfig resource:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: node-local-dns
    spec:
      enabled: false
    
  • by using the deckhouse-controller command (you need a kubectl, configured to work with the cluster):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable node-local-dns
    

The module does not require any configuration (it works right out-of-the-box).

Pay attention to the following:

  • The module works with all CNIs, but in order to work correctly with cni-cilium, a number of conditions must be met.
  • By default, when used together with the cni-simple-bridge or cni-flannel modules, the node-local-dns module does not work for requests from hostNetwork. In this case, all requests go to the kube-dns module. You can specify the address 169.254.20.10 in the pod configuration, but if node-local-dns module crashes, there will be no fallback to the kube-dns module.