I'm a bit late but...
Well, you would be correct to say that Kube-DNS is a "cluster add-on." However, something being a cluster add-on doesn't make it not part of Kubernetes. It is no less a part of Kubernetes than kube-proxy. As far as I can tell, the difference is that cluster add-ons run _within_ the cluster, alongside other services. With no cherry picking, here is a quick excerpt from the Kubernetes README about cluster add-ons:
> Cluster add-ons are resources like Services and Deployments (with pods) that are shipped with the Kubernetes binaries and are considered an inherent part of the Kubernetes clusters.
I do not think there's a standard set of cluster add-ons that are guaranteed to be installed in any given setup, but thus far I've done a few Kubernetes deployments and it seems the following come by default anywhere:
- fluentd for logging (w/ StackDriver on GCE and ELK elsewhere)
- kube-dns for dns
- grafana + heapster for container metrics
- dashboard (of course)
Re: load balancing. Calling Kubernetes Services poor man's load balancing seems rather disingenuous. Sure, it's layer 4 load balancing and it is round robin. However, being lower level does not make it useless. In fact, I have some production deployments that are not HTTP. Kubernetes does have a primitive for layer 7 load balancing and routing for HTTP, in the Ingress resource, which admittedly is not complete yet, but I'm grateful that they support layer 4 natively. It does just fine with our production deployments even though it's "purely round robin." Most of the time, pods under the same service will have roughly equal capacity containers, so round robin is usually fine. And as far as "poor man's load balancing" goes, it provides liveness and readiness checking, something that I'd consider to be useful alone, versus say DNS-based load balancing.
I think in some ways your line of thinking punishes Kubernetes for having a somewhat modular architecture and that sucks. If you have a setup that actually does lack ELK or Kube DNS by default with modern versions, then sorry for misjudging. However, I have not seen this yet and haven't seen anyone use Kubernetes without Kube DNS since I started.