mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 02:33:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			130 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Generated by Mmark Markdown Processer - mmark.miek.nl
 | 
						|
.TH "COREDNS-K8S_EXTERNAL" 7 "December 2019" "CoreDNS" "CoreDNS Plugins"
 | 
						|
 | 
						|
.SH "NAME"
 | 
						|
.PP
 | 
						|
\fIk8s_external\fP - resolves load balancer and external IPs from outside Kubernetes clusters.
 | 
						|
 | 
						|
.SH "DESCRIPTION"
 | 
						|
.PP
 | 
						|
This plugin allows an additional zone to resolve the external IP address(es) of a Kubernetes
 | 
						|
service. This plugin is only useful if the \fIkubernetes\fP plugin is also loaded.
 | 
						|
 | 
						|
.PP
 | 
						|
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.
 | 
						|
 | 
						|
.PP
 | 
						|
By default the apex of the zone will look like the following (assuming the zone used is \fB\fCexample.org\fR):
 | 
						|
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
 | 
						|
.nf
 | 
						|
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 ....
 | 
						|
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
 | 
						|
.PP
 | 
						|
Note that we use the \fB\fCdns\fR subdomain for the records DNS needs (see the \fB\fCapex\fR directive). Also
 | 
						|
note the SOA's serial number is static. The IP addresses of the nameserver records are those of the
 | 
						|
CoreDNS service.
 | 
						|
 | 
						|
.PP
 | 
						|
The \fIk8s_external\fP plugin handles the subdomain \fB\fCdns\fR and the apex of the zone itself; all other
 | 
						|
queries are resolved to addresses in the cluster.
 | 
						|
 | 
						|
.SH "SYNTAX"
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
 | 
						|
.nf
 | 
						|
k8s\_external [ZONE...]
 | 
						|
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
 | 
						|
.IP \(bu 4
 | 
						|
\fBZONES\fP zones \fIk8s_external\fP should be authoritative for.
 | 
						|
 | 
						|
 | 
						|
.PP
 | 
						|
If you want to change the apex domain or use a different TTL for the returned records you can use
 | 
						|
this extended syntax.
 | 
						|
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
 | 
						|
.nf
 | 
						|
k8s\_external [ZONE...] {
 | 
						|
    apex APEX
 | 
						|
    ttl TTL
 | 
						|
}
 | 
						|
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
 | 
						|
.IP \(bu 4
 | 
						|
\fBAPEX\fP is the name (DNS label) to use for the apex records; it defaults to \fB\fCdns\fR.
 | 
						|
.IP \(bu 4
 | 
						|
\fB\fCttl\fR allows you to set a custom \fBTTL\fP for responses. The default is 5 (seconds).
 | 
						|
 | 
						|
 | 
						|
.PP
 | 
						|
Enable names under \fB\fCexample.org\fR to be resolved to in-cluster DNS addresses.
 | 
						|
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
 | 
						|
.nf
 | 
						|
\&. {
 | 
						|
   kubernetes cluster.local
 | 
						|
   k8s\_external example.org
 | 
						|
}
 | 
						|
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
 | 
						|
.PP
 | 
						|
With the Corefile above, the following Service will get an \fB\fCA\fR record for \fB\fCtest.default.example.org\fR with the IP address \fB\fC192.168.200.123\fR.
 | 
						|
 | 
						|
.PP
 | 
						|
.RS
 | 
						|
 | 
						|
.nf
 | 
						|
apiVersion: v1
 | 
						|
kind: Service
 | 
						|
metadata:
 | 
						|
 name: test
 | 
						|
 namespace: default
 | 
						|
spec:
 | 
						|
 clusterIP: None
 | 
						|
 externalIPs:
 | 
						|
 \- 192.168.200.123
 | 
						|
 type: ClusterIP
 | 
						|
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
 | 
						|
.PP
 | 
						|
For some background see resolve external IP address
 | 
						|
\[la]https://github.com/kubernetes/dns/issues/242\[ra].
 | 
						|
And A records for services with Load Balancer IP
 | 
						|
\[la]https://github.com/coredns/coredns/issues/1851\[ra].
 | 
						|
 | 
						|
.PP
 | 
						|
PTR queries for the reverse zone is not supported.
 | 
						|
 |