目的
Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。本文详细介绍了集群的搭建。
负载均衡器分为硬件和软件。硬件如F5等,但是像F5这些设备费用高昂,不是每个公司都有财力用的。而软件业界用的最多的就是lvs,haproxy和nginx,而负载能力最强的就是lvs。本文详细介绍了lvs的安装部署。
在实际应用中,在 Web 服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为 Web 服务器流量的入口,挑选最合适的一台 Web 服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。
最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户端不需要关心真正提供服务的是哪台机器,在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,真正提供服务的,是后端的集群。
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式。
本文详细讲解了lvs的三种模式和十种算法。让你有个清晰的认识。
传统的静态配置方式要想修改某个配置只能修改之后重新发布应用。如要实现动态性,可以选择使用数据库,通过定时轮询访问数据库来感知配置的变化。但是轮询频率低,感知配置变化的延时就长,轮询频率高,感知配置变化的延时就短,但又比较损耗性能,所以需要在实时性和性能之间做折中。而配置中心专门针对这个业务场景,兼顾实时性和一致性来管理动态配置。
配置的权限管控、灰度发布、版本管理、格式检验和安全配置等一系列的配置管理相关的特性也是配置中心不可获取的一部分。
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址等等。对程序配置的期望值也越来越高:配置修改后实时生效,分环境、分集群管理配置,代码安全、审核机制等等。在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。所以,配置中心应运而生。
目前市面上用的比较多的配置中心有:(按开源时间排序)
2014年7月百度开源的配置管理中心,同样具备配置的管理能力,不过目前已经不维护了,最近的一次提交是两年前了。
2014年9月开源,Spring Cloud 生态组件,可以和Spring Cloud体系无缝整合。
2016年5月,携程开源的配置管理中心,具备规范的权限、流程治理等特性。
2018年6月,阿里开源的配置中心,也可以做DNS和RPC的服务发现。