Pod 的 Service 介绍

一、Service 介绍

Kubernetes Service 定义了这样一种抽象:

一个 Pod 的逻辑分组,一种可以访问它们的策略,通常称为微服务。 这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector 。

Service能够提供负载均衡的能力,但是在使用上有以下限制:

只提供4层负载均衡能力,而没有7层功能,但有时我们可能需要更多的匹配规则来转发请求,这点上 4 层负载均衡是不支持的

Service的网络类型

ClusterIp: 默认类型,自动分配一个仅 Cluster 内部可以访问的虚拟 IP

NodePort: 在 ClusterIP 基础上为 Service 在每台机器上绑定一个端口,这样就可以通过 : NodePort 来访问该服务

LoadBalancer: 在 NodePort 的基础上,借助 cloud provider 创建一个外部负载均衡器,并将请求转发到: NodePort

ExternalName: 把集群外部的服务引入到集群内部来,在集群内部直接使用。没有任何类型代理被创建,这只有 kubernetes 1.7 或更高版本的 kube-dns 才支持

二、Service 的代理模式分类

VIP 和 Service 代理

​在 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)服务

userspace 代理模式

iptables 代理模式

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 : 不排队调度

最新文章

  1. RecyclerView如何消除底部的分割线
  2. [NOIP2013]华容道
  3. $(window).height()获取到的高度不对
  4. ZZUOJ1196: 单调数
  5. Vue入门笔记#过渡
  6. [转]Extundelete--数据恢复软件
  7. poj 1995 Raising Modulo Numbers【快速幂】
  8. wikioi1191 数轴染色
  9. 一个意想不到的CDO.Message 错误
  10. Class.forName() 初始化、Thread.currentThread().getContextClassLoader().getResourceAsStream
  11. Jenkins高级用法 - Jenkinsfile 介绍及实战经验
  12. MySQL中间件之ProxySQL(11):链式规则( flagIN 和 flagOUT )
  13. Python开发 基礎知識 3.類別&方法 (bool & str) (未完待續)
  14. SSM_CRUD新手练习(8)搭建BootStrap分页页面
  15. IIS7下,显示PHP错误(不显示500错误,而显示详细错误)
  16. day01_雷神_Python入门
  17. Unity5.x shader打包AssetBundle总结
  18. 我的jlink破解失败经历
  19. CentOS6.8-minimal安装gnome桌面 安装NVC远程桌面连接
  20. 24-----BBS论坛

热门文章

  1. ceph 007 双向池同步 rgw对象网关配置 s3对象存储
  2. 1、spingIOC+IDEA+Maven
  3. Dart 异步编程(一):初步认识
  4. 国家都给NISP证书的补贴了!关于NISP考试的政策有哪些?
  5. windows下Inno Setup打包
  6. Helm安装ingress-nginx-4.2.3
  7. 第六章 部署node运算节点服务
  8. Ladon简单使用例子
  9. 基于OpenHarmony的智能喝水提醒器
  10. Kubernetes 中部署 MySQL 集群