最强概念总结Etcd、Lvs、HAProxy、Kubernetes
时间:2022-07-05 16:30:00
最强的面试总结,我服了这个哥们,宣传在开头
一、ETCD
etcd 是 CoreOS 团队发起的开源项目是管理配置信息和服务发现(service discovery)该项目的目标是构建高可用的分布式键值(key-value)基于 的数据库Go 语言实现。
特点:
- 简单:支持 REST 风格的 HTTP JSON API
- 安全:支持 HTTPS 访问方式
- 快速:支持并发 1k/s 的写操作
- 可靠性,支持分布式结构Raft 一致性算法,Raft 是通过选举主节点实现分布式系统一致性的算法。
简述ETCD适应的场景
etcd可广泛应用于以下场景:
- 服务发现(Service Discovery)
服务发现主要解决同一分布式集群中的过程或服务,如何找到对方并建立连接。本质就服务发现而言,我们想知道集群中是否有监控过程udp或tcp并且可以通过名字找到和连接端口。
- 新闻发布与订阅
在分布式系统中,最适用的组件间通信方式之一是发布和订阅信息。也就是说,建立一个配置共享中心,数据提供商在配置中心发布信息,而信息用户订阅他们关心的主题。一旦主题发布了信息,它将实时通知订阅者。这样,分布式系统配置的集中管理和动态更新就可以实现。应用程序中使用的一些配置信息被放置在etcd集中管理。
- 负载均衡
在分布式系统中,为了保证服务的高可用性和数据的一致性,通常会部署多个数据和服务来实现平等服务,即使其中一个服务失败,也不会影响使用。etcd存储在分布式架构中的信息访问支持负载平衡。etcd集群化后,每一个etcd所有核心节点都可以处理用户的请求。因此,直接存储数据量小但访问频繁的消息数据etcd负载平衡的效果也可以在中间实现。
分布式通知与协调:类似于新闻发布和订阅etcd中的Watcher通过注册和异步通知机制,实现分布式环境下不同系统之间的通知和协调,实时处理数据变更。
因为etcd使用Raft算法保持了数据的强烈一致性,存储在集群中的操作值必须是全球一致的,因此很容易实现分布式锁。锁定服务有两种使用方式,一种是保持独家,另一种是控制时间顺序。
- 集群监控与Leader竞选
通过etcd监控非常简单实时。
二、Heartbeat
Heartbeat是Linux-HA它提供了项目中的一个组件心跳检测和资源接管、集群服务监测、故障切换等功能。heartbeat核心功能包括心跳监测和资源接管两部分。心跳监测可以通过网络链路和串口进行,并支持冗余链路。他们互相发送报纸,告诉对方他们目前的状态。如果他们在指定时间内没有收到对方发送的报纸,他们会认为对方无效。此时,需要启动资源接管模块,接管对方主机上运行的资源或服务。
三、Keepalived
Keepalived 是基础VRRP协议来实现的LVS高可用的服务方案可以解决静态路由的单点故障问题。
在一个LVS主服务器通常在服务集群中(MASTER)备份服务器(BACKUP)两个角色的服务器,但外部性能是虚拟的IP,将发送主服务器VRRP当备份服务器无法收到通知信息时,将备份服务器发送给备份服务器VRRP当主服务器异常时,备份服务器将接管虚拟信息IP,继续提供服务,以确保高可用性。
简述Keepalived主统的主要模块及其作用
keepalived系统架构中主要有三个模块core、check和vrrp。
1、core模块为keepalived核心负责主流程的启动、维护和文件的加载和分析
2、vrrp实现模块VRRP协议的
3、check负责健康检查的常见方法有端口检查和URL检查
简述Keepalived如何通过健康检查确保高可用性
Keepalived工作在TCP/IP第三、四、五层模型,即网络层、传输层和应用层。
- 网络层
Keepalived采用ICMP协议将协议发送到服务器集群中的每个节点ICMP若某个节点未返回响应数据包,则认为该节点出现故障,Keepalived故障节点将从服务器集群中报告第二个节点故障。
- 传输层
Keepalived利用TCP判断集群节点是否正常的端口连接和扫描技术。web服务默认端口80,ssh默认端口22等。Keepalived一旦传输层检测到相应端口无响应数据返回,则认为端口异常,从而从服务器集群中删除端口对应的节点。
- 应用层
可以运行FTP、telnet、smtp、dns不同类型的高层协议,Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived设置并监控各种程序或服务是否正常。如果监控结果与设定的正常结果不一致,则从服务器集群中删除相应的节点。
Keepalived通过完整的健康检查机制,确保集群中所有节点的有效性,实现高可用性。
四、LVS
LVS是linux virtual server的简写linux虚拟服务器是虚拟服务器集群系统unix/linux平台下实现负载均衡集群功能。
LVS主要作用是通过LVS提供的负载均衡技术实现了高性能、高可用性的服务器集群。LVS主要可实现:
- 在多个节点设备上分别处理单台计算机无法承受的大规模并发访问或数据流量,减少用户等待响应的时间,提高用户体验。
- 单个重负载的操作分担到多个节点设备并行处理。每个节点设备处理后,总结结果并返回用户,大大提高了系统处理能力。
- 7*24小时的服务保证,任何一个或多个设备节点的停机都不会影响业务。在负载平衡集群中,所有计算机节点都应提供相同的服务,集群负载平衡以获得所有服务要求。
简述LVS工作模式及其工作流程
LVS 负载平衡模式有三种,即VS/NAT(nat 模式)、VS/DR(路由模式),VS/TUN(隧道模式)。
- NAT模式(VS-NAT)
- 原理:首先,当负载平衡器收到客户的请求数据包时,根据调度算法决定将请求发送到哪个后端的真实服务器(RS)。然后负载平衡器将客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应请求后,检查默认路由,将响应后的数据包发送给负载平衡器。接收响应包后,负载平衡器将包的源地址改为虚拟地址(VIP)然后发回客户端。
- 优点:集群中的服务器可以使用任何支持TCP/IP只要负载均衡器有合法的操作系统IP地址。
- 缺点:可扩展性有限。当服务器节点增加过多时,负载平衡器将成为整个系统的瓶颈,因为所有的要求和响应都需要通过负载平衡器。
- IP隧道模式(VS-TUN)
- 原理:首先,当负载平衡器收到客户的请求数据包时,根据调度算法决定将请求发送到哪个后端的真实服务器(RS)。然后负载平衡器将客户端发送的请求报纸封装在一层IP隧道(T-IP)转发到真实服务器(RS)。响应请求后,检查默认路由,直接将响应后的数据包发送给客户端,无需通过负载平衡器。
- 优点:负载平衡器只负责将请求包分发给后端节点服务器RS将应答包直接发送给用户。因此,负载均衡器的大量数据流数据流,负载均衡器不再是系统的瓶颈,也可以处理大量的要求。
- 缺点:隧道模式RS节点需要合法IP,这需要所有服务器的支持。IP Tunneling”。
- 直接路由模式(VS-DR)
- 原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载平衡器将客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
- 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减�