一、VIP 和 Service 代理

kubernetes视频教程笔记 (19)-代理模式的分类_kubernetes

 

 

在 Kubernetes 集群中,每个 Node 运行一个 kube-proxy 进程。 kube-proxy 负责为 Service 实现了一种 VIP(虚拟 IP)的形式,而不是 ExternalName 的形式。 在 Kubernetes v1.0 版本,代理完全在 userspace。在 Kubernetes v1.1 版本,新增了 iptables 代理,但并不是默认的运行模式。 从 Kubernetes v1.2 起,默认就是 iptables 代理。 在 Kubernetes v1.8.0-beta.0 中,添加了 ipvs 代理

 

在 Kubernetes 1.14 版本开始默认使用 ipvs 代理 在 Kubernetes v1.0 版本, Service 是 “4层”(TCP/UDP over IP)概念。

 

在 Kubernetes v1.1 版本,新增了 Ingress API(beta 版),用来表示 “7层”(HTTP)服务 !

 

为何不使用 round-robin DNS?

 

二、userspace 代理模式

kubernetes视频教程笔记 (19)-代理模式的分类_kubernetes_02

 

三、iptables 代理模式

kubernetes视频教程笔记 (19)-代理模式的分类_集群_03

 

四、ipvs 代理模式

这种模式,kube-proxy 会监视 Kubernetes Service 对象和 Endpoints ,调用 netlink 接口以相应地创建 ipvs 规则并定期与 Kubernetes Service 对象和 Endpoints 对象同步 ipvs 规则,以确保 ipvs 状态与期望一 致。访问服务时,流量将被重定向到其中一个后端 Pod

与 iptables 类似,ipvs 于 netfilter 的 hook 功能,但使用哈希表作为底层数据结构并在内核空间中工作。这意 味着 ipvs 可以更快地重定向流量,并且在同步代理规则时具有更好的性能。此外,ipvs 为负载均衡算法提供了更 多选项,例如:

  • rr :轮询调度
  • lc :最小连接数
  • dh :目标哈希
  • sh :源哈希
  • sed :最短期望延迟
  • nq : 不排队调度

kubernetes视频教程笔记 (19)-代理模式的分类_kubernetes_04

kubernetes视频教程笔记 (19)-代理模式的分类_kubernetes_05

 

kubernetes视频教程笔记 (19)-代理模式的分类_集群_06

kubernetes视频教程笔记 (19)-代理模式的分类_kubernetes_07

 

 

 

 

 

 

内容来自https://study.163.com/course/courseMain.htm?courseId=1209568805