kube-proxy & Service & Endpoint

kube-proxy & Service & Endpoint

kube-proxy 也是在每个节点上都运行的。它是实现Kubernetes Service 机制的重要组件。毫无意外,kube-proxy 也是一个“控制器”。它也从API Server 监听Service 和Endpoint对象的变化,并根据Endpoint 对象的信息设置Service 到后端Pod 的路由,维护网络规则,执行TCP、UDP 和SCTP 流转发。

如图 所示,标签app=example 的Pod 都是此Service的后端Pod,他们的Pod IP 将会被Endpoint 控制器实时更新到Endpoint 对象中。此Serivce被分配的ClusterIP 为192.168.232.109,nodePort 为30004。Pod 的8080 端口映射到Service的80 端口。也就是说,在集群内部通过192.168.232.109:80 就能访问此Service 的后端Pod 8080 端口提供的服务;集群外的主机可以通过nodeIP:30004 来访问此Service。

在这里插入图片描述

举例

kd get svc,ep,pod --show-labels -owide

在这里插入图片描述
Kubernetes Dashboard

流量转发

kube-proxy 有两种模式都可以实现流量转发,分别是iptables 模式和IPVS(IP Virtual Server)模式(可以通过参数–proxy-mode 来指定)。默认是iptables 模式,该模式是通过每个节点上的iptables 规则来实现的。

iptables -t nat -S

随着Service 数量的增大,iptables 模式由于线性查找匹配、全量更新等特点,其性能会显著下降。从Kubernetes 的1.8 版本开始,kube-proxy 引入了IPVS 模式,IPVS 与iptables同样基于netfilter,但是采用的是哈希表而且运行在内核态,当Service 数量达到一定规模时,哈希表的查询速度优势就会显现出来,从而提高Service 的服务性能。

ipvsadm --list 

Flannel,Calico 和 Cilium优缺在这里插入图片描述

Cilium
Flannel,Calico 和 Cilium优缺

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值