《Kubernetes,鸟哥的linux私房菜电子书

本文介绍了Kubernetes Service的三种工作模式:userSpace、iptables和ipvs,重点讲解了ipvs模式的高效特性及实践。此外,还详细阐述了Service的五种类型:ClusterIP、Headless、NodePort、LoadBalancer和ExternalName,以及它们在负载均衡和外部访问中的应用。最后提到了Ingress如何解决单一Service暴露带来的问题,实现更高效的资源利用。
摘要由CSDN通过智能技术生成

[](

)1)工作模式

kube-proxy 支持 3 种工作模式,如下:

1. userSpace

这个模式比较稳定,但是效率比较低!在 userSpace 模式下,kube-proxy 会为每一个 Service 创建一个监听端口,当有请求发往Cluster IP 的时候,会被 Iptables 规则重定向到 kube-proxy 监听的端口上,kube-proxy 会根据 LB 算法选择一个 Pod 提供服务并建立起连接。

这个模式下,kube-proxy 充当的角色是一个 四层负责均衡器,由于 kube-proxy 运行在 userSpace 模式下,在进行转发处理的时候会增加内核和用户空间之间的数据拷贝,因此效率比较低。

img

2. iptables

在 iptables 模式下,kube-proxy 会为 Service 后端的每个 pod 都创建对应的 iptable 规则,直接将发往 Cluster IP 的请求重定向到一个 pod IP 上。该模式下 kube-proxy 不承担四层负载均衡器的角色,只负责创建 iptables 的规则。该模式的优点便是较 userspace 模式来说效率更高,但是不能提供灵活的 LB 策略。当后端Pod不可用的时候也无法进行重试。

img

3. ipvs

这种模式与 iptables 模式形似,kube-proxy 会监控pod的变化并且创建相应的 ipvs 规则。但是 ipvs 规则相对于 iptables 来说转发效率更高,而且支持更多的 LB 算法。

img

实践

上面了解到3种工作模式。我们来简单试一下 ipvs 的作用。首先准备一份资源清单:

img

这份清单上半部分是创建一个 Pod控制器,下半部分是创建一个 Service。

img

然后我们输入 ipvsadm -Ln命令即可看到 ipvs规则策略:

10.108.230.12 是 service 提供的访问入口,当访问这个入口的时候,可以发现后面有三个 pod 的服务在等待调用,kube-proxy 会基于 rr(轮询)的策略,将请求分发到其中一个pod上去,这个规则会同时在集群内的所有节点上都生成,所以在任何一个节点上访问都可以!

此模式必须安装 ipvs 内核模块,否则会降低为 iptables

开启 ipvs:


kubectl edit cm kube-proxy -n kube-system 

img

编辑后保存(:wq)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值