Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 1.42 KB

kube-proxy-user-space.md

File metadata and controls

28 lines (22 loc) · 1.42 KB

user space 代理模式

Service 的请求会先从用户空间进入内核 iptables,将其转发到本地的服务代理端口,然后再回到用户空间,由 kube-proxy 完成后端 Endpoints 的选择和代理工作。

如此,反复在用户空间和内核空间之间切换,非常影响服务性能。

工作流程

kube-proxy 持续监听 Service 以及 Endpoints 对象的变化;对每个 Service,在本地节点开放一个端口,作为其服务代理端口。发往该端口的请求会采用一定的策略转发给与该服务对应的后端 Pod 实体。

                         +--------+         +---------+
                         | Client | ----->  | CoreDNS |  -----+
                         +--------+         +---------+       |
                                                              |
                     +------------+         +----------+      |
                     | kube-proxy |  <----- | iptables | <----+
                     +------------+         +----------+ 
                           |
                 +---------|---------+
                 |         |         |
                 |         |         |
              +-----+   +-----+   +-----+                
              | Pod |   | Pod |   | Pod |                
              +-----+   +-----+   +-----+                

目前 K8s 正在移除 user space 相关代码,未来全部移除后将废弃 user space 模式