This feature is available in Enterprise Edition only.

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 deploy/deckhouse -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 deploy/deckhouse -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 supports the iptables kube-proxy mode only (the ipvs mode is not supported and not tested).
  • By default, the module does not serve hostNetwork requests (they are forwarded to kube-dns). In this case, you can specify the 169.254.20.10address in the Pod configuration yourself. However, if a node-local-dns will crash, you will not be able to get back to kube-dns.