dns-controller
dns-controller creates DNS records.
In the bring-up of a new cluster, protokube has already ensured that
we have an etcd cluster and an apiserver. It also sets up DNS
records for the etcd nodes (this is a much simpler problem, because
we have a 1:1 mapping from an etcd node to a DNS name.)
However, none of the nodes can reach the api server to register. Nor
can end-users reach the API. In future we might expose the API server
as a normal service via Type=LoadBalancer or via a normal Ingress,
but for now we just expose it via DNS.
The dns-controller recognizes annotations on nodes.
dns.alpha.kubernetes.io/external will set up records for accessing
the resource externally
dns.alpha.kubernetes.io/internal will set up records for accessing
the resource internally
When added on Service controllers:
dns.alpha.kubernetes.io/external creates a Route53 A record with
public IPs of all the nodes
dns.alpha.kubernetes.io/internal creates a Route53 A record with
private IPs of all the nodes
The syntax is a comma separated list of fully qualified domain names.