At this point virtually everyone is running CoreDNS, but there had been
this feeling that "well, kube-dns isn't hurting anyone, we should just
keep it around". But recently I discovered[1] that it still doesn't
support EndpointSlices (and thus by extension, doesn't support
dual-stack), and there doesn't seem to be any plan to address that[2],
which is a problem for the plan to finish deprecating Endpoints and
allow clusters to be conformant when they provide only EndpointSlices[3].
So... we discussed this at the SIG meeting today, and agreed that it
makes sense to deprecate kube-dns. At the moment, the plan is:
1. Migrate NodeLocal DNS Cache out of `kubernetes/dns` into a new
kubernetes-sigs repo. (It currently shares the `kubernetes/dns`
repo with kube-dns, but is based on CoreDNS, not kube-dns.)
Update build/release/image stuff for that. (We will not change
the name of the official NodeLocal DNS Cache image.)
2. Update k/community to remove kube-dns as a SIG Network subproject
and add NodeLocal DNS Cache.
3. Remove the kube-dns cluster addon from k/k
4. Make any other necessary updates to k/k and k/website (?)
5. Request that the kubernetes/dns repo be archived, and stop
providing new versions of the `k8s-dns-kube-dns` image.
6. In parallel, restart the conversation about where to put technical
documentation[4] and figure out a new home for the "Kubernetes
DNS-Based Service Discovery" specification[5].
Our deprecation procedures do not explicitly discuss official images,
but I suppose the "at least 1 year" rule probably applies to step 5
above (and maybe step 3? I don't know what the deprecation rules for
k/k/cluster/addons are either). In which case that would suggest a
target of 1.40 for it being completely gone?
-- Dan
[1]
https://github.com/kubernetes/enhancements/pull/5923#pullrequestreview-3809363331
[2]
https://github.com/kubernetes/dns/issues/504
[3]
https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/4974-deprecate-endpoints/README.md
[4]
https://github.com/kubernetes/community/issues/7421
[5]
https://github.com/kubernetes/dns/blob/master/docs/specification.md