| Field | Type | Description | Value(s) |
|---|---|---|---|
nameservers | NameserverConfig | A list of nameservers (DNS servers) to use for resolving domain names. Nameservers are used to resolve domain names on the host, and they are also propagated to Kubernetes DNS (CoreDNS) for use by pods running on the cluster. This overrides any nameservers obtained via DHCP or platform configuration. Default configuration is to use 1.1.1.1 and 8.8.8.8 as nameservers. | |
searchDomains | SearchDomainsConfig | Configuration for search domains (in /etc/resolv.conf). The default is to derive search domains from the hostname FQDN. | |
hostDNS | HostDNSConfig | Configuration for host DNS resolver. This configures a local DNS caching resolver on the host to improve DNS resolution performance and reliability. |
nameservers[]
NameserverConfig represents a single nameserver configuration.| Field | Type | Description | Value(s) |
|---|---|---|---|
address | Addr | The IP address of the nameserver. | |
protocol | DNSProtocol | A DNS protocol to use. The default protocol is plain DNS ( Do53) (DNS over TCP/UDP). Set this toDoT to use DNS over TLS (RFC 7858) on TCP port 853, or DoH to use DNSover HTTPS (RFC 8484) on TCP port 443 with the /dns-query URL path. BothDoT and DoH deliver encrypted queries to this nameserver.Note: encrypted DNS protocols require a correct system clock to validate certificates. If NTP is configured with hostnames that need to be resolved through DoT/DoH, the boot may stall: NTP needs DNS, and TLS needs valid time. Either rely on the hardware clock, configure NTP servers by IP, or keep at least one plain-DNS fallback nameserver. | Do53DoTDoH |
tlsServerName | string | TLS server name to validate the nameserver certificate against. This field should be set if the protocol is set to DoT or DoH.The value is used both as the SNI sent during the TLS handshake and as the name verified against the server certificate. For DoH, it is also used asthe host portion of the request URL ( https://<tlsServerName>/dns-query)while the connection itself is established to the configured address. |
searchDomains
SearchDomainsConfig represents search domains configuration.| Field | Type | Description | Value(s) |
|---|---|---|---|
domains | []string | A list of search domains to be used for DNS resolution. Search domains are appended to unqualified domain names during DNS resolution. For example, if “example.com” is a search domain and a user tries to resolve ”host”, the system will attempt to resolve “host.example.com”. This overrides any search domains obtained via DHCP or platform configuration. The default configuration derives the search domain from the hostname FQDN. | |
disableDefault | bool | Disable default search domain configuration from hostname FQDN. When set to true, the system will not derive search domains from the hostname FQDN. This allows for a custom configuration of search domains without any defaults. |
hostDNS
HostDNSConfig represents host DNS configuration.| Field | Type | Description | Value(s) |
|---|---|---|---|
enabled | bool | Enable host DNS caching resolver. When enabled, a local DNS caching resolver is deployed on the host to improve DNS resolution performance and reliability. Upstream DNS servers for the host resolver are configured using the nameservers field in this config document. | |
forwardKubeDNSToHost | bool | Use the host DNS resolver as upstream for Kubernetes CoreDNS pods. When enabled, CoreDNS pods use host DNS server as the upstream DNS (instead of using configured upstream DNS resolvers directly). | |
resolveMemberNames | bool | Resolve member hostnames using the host DNS resolver. When enabled, cluster member hostnames and node names are resolved using the host DNS resolver. This requires service discovery to be enabled. |