| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .\" Generated by Mmark Markdown Processer - mmark.nl | 
					
						
							|  |  |  | .TH "COREDNS-K8S_EXTERNAL" "7" "April 2019" "CoreDNS" "CoreDNS Plugins" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .SH NAME | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | \fIk8s_external\fP - resolve 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 (assuming the zone used is \fB\fCexample.org\fR): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | .nf | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 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 .... | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .fi | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .RE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | Note we use the \fB\fCdns\fR subdomain to place the records the 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 by itself, all other | 
					
						
							|  |  |  | queries are resolved to addresses in the cluster. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .SH SYNTAX | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | .nf | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | k8s\_external [ZONE...] | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .fi | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .RE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .IP \(bu 4 | 
					
						
							|  |  |  | \fBZONES\fP zones \fIk8s_external\fP should be authoritative for. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .PP | 
					
						
							|  |  |  | If you want to change the apex domain or use a different TTL for the return records you can use | 
					
						
							|  |  |  | this extended syntax. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .nf | 
					
						
							|  |  |  | k8s\_external [ZONE...] { | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  |     apex APEX | 
					
						
							|  |  |  |     ttl TTL | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | .fi | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .RE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .IP \(bu 4 | 
					
						
							|  |  |  | \fBAPEX\fP is the name (DNS label) to use the apex records, 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). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .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 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-16 21:48:37 +00:00
										 |  |  | .fi | 
					
						
							| 
									
										
										
										
											2019-04-06 08:42:40 +01:00
										 |  |  | .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. | 
					
						
							|  |  |  | 
 |