Kubernetes服务实现、高可用集群搭建与API服务器认证详解
1. 服务的实现
1.1 kube - proxy介绍
Kubernetes中与服务相关的一切操作都由运行在每个节点上的kube - proxy进程处理。最初,kube - proxy是一个真正的代理,它等待连接,并为每个传入连接打开一个到某个Pod的新连接,这被称为用户空间代理模式。后来,性能更好的iptables代理模式取代了它,现在这是默认模式,但你也可以配置Kubernetes使用旧模式。
每个服务都有自己稳定的IP地址和端口,客户端(通常是Pod)通过连接到这个IP地址和端口来使用服务。需要注意的是,服务的IP地址是虚拟的,它没有分配给任何网络接口,并且在数据包离开节点时,它永远不会作为源IP地址或目标IP地址出现在网络数据包中。服务的关键细节是它由一个IP和端口对组成(对于多端口服务,则是多个IP和端口对),所以仅服务IP本身没有任何意义,这就是为什么你不能对其执行ping操作。
1.2 kube - proxy如何使用iptables
当在API服务器中创建服务时,会立即为其分配虚拟IP地址。随后,API服务器会通知所有运行在工作节点上的kube - proxy代理,告知有新服务创建。接着,每个kube - proxy会通过设置一些iptables规则,使该服务在其运行的节点上可访问。这些规则确保每个发往服务IP/端口对的数据包被拦截,并修改其目标地址,从而将数据包重定向到支持该服务的某个Pod。
kube - proxy不仅会监视API服务器中服务的变化,还会监视Endpoints对象的变化。Endpoints对象保存了支持服务的
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



