背景:
解释 kube-proxy 和kube-dns 的区别
@hxx 一句话总结
访问任何一个服务都需要知道ip+port,这是无疑的,那么访问service也当然需要,kube-dns是为了解决通过域名来访问service!
而,从pod 访问 service(也可以说是到service后面的pod),是需要kube-proxy来实现的,kube-proxy实现的方式有两个:userspace 和iptables!
可以理解为 kube-dns 只是其中的一个域名服务,和edoc一样,只要部署几个服务节点即可!而kube-proxy是每个node 都需要部署的,以demonset的形式部署!
正文:
1: kube-dns是什么?
kube-dns是为了解决service使用endpoint(service名字)来实现服务发现的一个域名解析服务!
kube-dns实现服务发现功能要解决下面几个问题:如何将域名解析成svc vip? 如果知道这种对应关系?svc backend变化或者故障如何发现转移?pod 又是如何找到kube dns的?
它内部包含四个组件: