31:抽丝剥茧理解kube-proxy的原理

很多时候在熟悉一套集群系统的同时,我们也在忽略一些重要组件的实现细节,比如kube-proxy。kube-proxy是解决Kubernetes 集群中南北向,东西向网络通信的核心组件,但是在梳理Kubernetes知识的时候,会对它有一种陌生的感觉。它到底是怎么运行的呢?所以,本篇的内容就是为了解密kube-proxy的运行原理和执行细节,让你更详细的了解到kube-proxy的今生后世。

31.1 容器网络

要想理解kube-proxy的运行机制,我们必须要前置一段内容讲讲容器网络。让我们首先尝试了解两个Pod如何在Kubernetes集群中进行通信。

对于任何两个Pod来说,它们需要被分配唯一的IP地址。这些IP地址必须在集群中是唯一的。无论运行在哪个主机上,Pod都应该能够使用这些IP地址到达对方,而无需依赖网络地址转换。

你肯定会默默心中发问:"Kubernetes是如何做到这一点的?"。好吧,它有点不一样。有一百种不同的方法来实现这一点,每一种方法都有不同的场景。而Kubernetes不可能实现这些网络解决方案中的每一个。相反,Kubernetes规定了一些网络要求并推出了容器网络接口标准(CNI),CNI(插件)的责任是确保这些要求得到满足。

一些CNI插件做了很多事情,不仅仅是确保Pod有IP地址,而且它们可以相互同步状态。我不打算深入解释CNI,但是这里需要记住的关键信息是,CNI确保Pod有L3连接,而不需要依赖NAT。

很多时候在熟悉一套集群系统的同时,我们也在忽略一些重要组件的实现细节,比如kube-proxy。kube-proxy是解决Kube

你可能感兴趣的:(Kubernetes,实践入门指南,kubernetes,网络,linux)