GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
COREDNS-K8S_EXTERNAL(7) CoreDNS Plugins COREDNS-K8S_EXTERNAL(7)

k8s_external - resolves load balancer and external IPs from outside Kubernetes clusters.

This plugin allows an additional zone to resolve the external IP address(es) of a Kubernetes service. This plugin is only useful if the kubernetes plugin is also loaded.

The plugin uses an external zone to resolve in-cluster IP addresses. It only handles queries for A, AAAA and SRV records; all others result in NODATA responses. To make it a proper DNS zone, it handles SOA and NS queries for the apex of the zone.

By default the apex of the zone will look like the following (assuming the zone used is example.org):

example.org.    5 IN    SOA ns1.dns.example.org. hostmaster.example.org. (
                12345      ; serial
                14400      ; refresh (4 hours)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                5          ; minimum (4 hours)
                )
example.org        5 IN    NS ns1.dns.example.org.
ns1.dns.example.org.  5 IN  A    ....
ns1.dns.example.org.  5 IN  AAAA ....

Note that we use the dns subdomain for the records DNS needs (see the apex directive). Also note the SOA's serial number is static. The IP addresses of the nameserver records are those of the CoreDNS service.

The k8s_external plugin handles the subdomain dns and the apex of the zone itself; all other queries are resolved to addresses in the cluster.

k8s_external [ZONE...]

ZONES zones k8s_external should be authoritative for.

If you want to change the apex domain or use a different TTL for the returned records you can use this extended syntax.

k8s_external [ZONE...] {
    apex APEX
    ttl TTL
}

  • APEX is the name (DNS label) to use for the apex records; it defaults to dns.
  • ttl allows you to set a custom TTL for responses. The default is 5 (seconds).

Enable names under example.org to be resolved to in-cluster DNS addresses.

. {
   kubernetes cluster.local
   k8s_external example.org
}

With the Corefile above, the following Service will get an A record for test.default.example.org with the IP address 192.168.200.123.

apiVersion: v1
kind: Service
metadata:
 name: test
 namespace: default
spec:
 clusterIP: None
 externalIPs:
 - 192.168.200.123
 type: ClusterIP

For some background see resolve external IP address ⟨https://github.com/kubernetes/dns/issues/242⟩. And A records for services with Load Balancer IP ⟨https://github.com/coredns/coredns/issues/1851⟩.

PTR queries for the reverse zone is not supported.

March 2021 CoreDNS

Search for    or go to Top of page |  Section 7 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.