sigs.k8s.io/external-dns@v0.14.1/docs/tutorials/kops-dns-controller.md (about) 1 # kOps dns-controller compatibility mode 2 3 kOps includes a dns-controller that is primarily used to bootstrap the cluster, but can also be used for provisioning DNS entries for Services and Ingress. 4 5 ExternalDNS can be used as a drop-in replacement for dns-controller if you are running a non-gossip cluster. The flag `--compatibility kops-dns-controller` enables the dns-controller behaviour. 6 7 ## Annotations 8 9 In kops-dns-controller compatibility mode, ExternalDNS supports two additional annotations: 10 11 * `dns.alpha.kubernetes.io/external` which is used to define a DNS record for accessing the resource publicly (i.e. public IPs) 12 13 * `dns.alpha.kubernetes.io/internal` which is used to define a DNS record for accessing the resource from outside the cluster but inside the cloud, 14 i.e. it will typically use internal IPs for instances. 15 16 These annotations may both be comma-separated lists of names. 17 18 ## DNS record mappings 19 20 The DNS record mappings try to "do the right thing", but what this means is different for each resource type. 21 22 ### Pods 23 24 For the external annotation, ExternalDNS will map a HostNetwork=true Pod to the external IPs of the Node. 25 26 For the internal annotation, ExternalDNS will map a HostNetwork=true Pod to the internal IPs of the Node. 27 28 ExternalDNS ignore Pods that are not HostNetwork=true 29 30 Annotations added to Pods will always result in an A record being created. 31 32 ### Services 33 34 * For a Service of Type=LoadBalancer, ExternalDNS looks at Status.LoadBalancer.Ingress. It will create CNAMEs to hostnames, 35 and A records for IP addresses. It will do this for both internal and external names 36 37 * For a Service of Type=NodePort, ExternalDNS will create A records for the Node's internal/external IP addresses, as appropriate.