kubernets之服务的实现方式
一 服务如何通过kubernetes集群的组件来实现其功能
1.1 节点上的所有的服务相关的功能实现都是通过节点上面的kube-proxy来实现的,服务提供了一个或者多个服务IP以及端口对客户端开放,将其中的流量转发到对应的后端的pod上面去,每个service都有其稳定的IP地址以及端口,IP地址是虚拟的,并没有分配给任何实际的设备,所有服务IP本身并不能代表任何东西,这就是你无法ping通它的真正原因
1.2 kube-proxy如何将一个发到请求的service转到相应的后端,以及各个节点如何能够知道service的地址
在API服务器创建了一个service的时候,立马会分配一个IP地址给它,之后API服务器在很短的时间内通知到所有的kube-proxy有一个服务已经创建了,然后kube-proxy会让该IP在其所在的节点上可寻址,原理是建立一系列iptables规则,使得到目的地为服务的IP和端口被修改,如此就能将请求重定向到pod中
下面演示一个到服务的请求如何被重定向到其他的pod中
- 当节点A上的podA向服务发起请求的时候,节点上的内核里面的iptables规则有一条规矩就是如果目的地址为服务的IP则随机替换到服务的endpoint里面一个pod里面去
- 所有实际上,从头到尾,这个服务的IP就是一个极其虚拟的
二 运行高可用的集群
2.1 让应用高可用
将应用运行在集群上的理由是,kubernets天然给你提供负载均衡,高可用以及很多好的特性
如果需要做到这一点,需要你的应用能支持这点,如果不支持也没关系,可以将副本设置为1,并且还可以利用选举机制,就是创建多个你的副本应用,但是在任意的时间内,只有一个是可以对外提供服务,当这个节点挂掉之后,其余节点会感知到并与其他节点互相竞选提供服务的节点
2.2 让kubernetes集群高组件高可用
让kubernets集群高可用的图示如下所示
- etcd高可用,一般将其设置为奇数个,3,5,7等
- api服务器的数量保持和etcd一致就可以了,etcd就不需要搭载负载均衡器,而API服务器则需要一个负载均衡器,这样可以保证客户端总能连接到健康的实例
- 调度器和控制器一样的,都只能有一个是工作的状态,其余的则是等到active节点挂了的时候在去竞争
kubernets之服务的实现方式的更多相关文章
- 浅淡Webservice、WSDL三种服务访问的方式(附案例)
Webservice Webservice是使应用程序以与平台和编程语言无关的方式进行相互通信技术. eg:站点提供访问的数据接口:新浪微博.淘宝. 官方解释:它是一种构建应用程序的普遍模型,可以在任 ...
- dubbo服务启动的方式
dubbo服务启动的方式: 1.dubbo自带的脚本, 2.直接用main方法启动dubbo的spring容器,参见dubbo-test里的各个例子 3.dubbo的spring boot start ...
- SpringCloud-创建服务消费者-Feign方式(附代码下载)
场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
笔记 第四章 服务消费者ribbon和feign实战和注册中心高可用 1.常用的服务间调用方式讲解 简介:讲解常用的服务间的调用方式 RPC: 远程过程调用,像调用本地 ...
- C# RFID windows 服务 网络协议方式
上篇话说是串口方式操作RFID设备. 下面介绍网络协议方式. 设备支持断线重连. 那我们的服务也不能差了不是. 所以这个服务类也是支持的哦. 不解释上代码: namespace Rfid { /// ...
- Windows服务定时执行方式
采用System.Timers.Timer 间隔固定时间执行 方式一:间隔固定的时间执行一次,关键代码: protected override void OnStart(string[] args) ...
- Windows Azure虚拟机和云服务实例计费方式更新
在之前的Windows Azure计费账单中,A0,A1,A2,A3,A4系列的虚拟机(云服务实例)都是以A1为基准计费单位的,即: 虚拟机大小 计费单位(小时) A0 A1*0.25 A1 A1*1 ...
- android服务之启动方式
服务有两种启动方式 通过startService方法来启动 通过bindService来开启服务 布局文件 在布局文件中我们定义了四个按键来测试这两种方式来开启服务的不同 <?xml versi ...
- Webservice、WSDL三种服务访问的方式【转】
http://www.cnblogs.com/yongfeng/archive/2013/01/30/2883146.html 用soapUI试了下wsdl的测试,但还是不知道webService和W ...
随机推荐
- AWT10-位图
1.概述 Graphics提供了drwaImage(Image image)来绘制位图,该方法需要一个位图做参数. 步骤: 1.创建Image的子类对象BufferedImage(int width, ...
- JavaSE10-继承&super&this&抽象类
1.继承 1.1 概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可. 其中,多个类可以称为子类,单独那一个类称为父类.超类(s ...
- 第一篇:docker 简单入门(一)
本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 由于此类文章博客园鉴定为简单文章,所以已经移到csdn[https://blog.csd ...
- 线程池的介绍和使用,以及基于jvmti设计非入侵监控
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 五常大米好吃! 哈哈哈,是不你总买五常大米,其实五常和榆树是挨着的,榆树大米也好吃, ...
- Python读写EXCEL文件常用方法大全
前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pa ...
- Python高级语法-import导入-sys.path(4.4.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点 ...
- Powerdesigner中表导出sql语句关于字段注释乱码的问题
问题说明 注释中的汉字都变成了?,应该是编码的问题. declare @CurrentUser sysname select @CurrentUser = user_name() execute sp ...
- (六)、mv-一个具备更改文件名和移动文件的命令
一.mv的命令格式和作用 既可以在不同目录之间移动文件和目录,也可以在同一目录下对文件或者目录重命名,如果目标文件已经存在,则可覆盖他,若 目标文件或者目录不存在,则创建他:移动的dst必须为目录 命 ...
- [每日一题]ES6中为什么要使用Symbol?
关注「松宝写代码」,精选好文,每日面试题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目 ...
- HashMap知识点总结,这一篇算是总结的不错的了,建议看看!
HashMap存储结构 内部包含了⼀个 Entry 类型的数组 Entry[] table.transient Entry[] table;(transient:表示不能被序列化)Entry类型存储着 ...