keepalived

Kubernetes生产架构详解

给你一囗甜甜゛ 提交于 2021-01-02 23:54:02
注意 本文,只是笔者针对Kubernetes生产环境运行的一些关于架构设计和实现方案的总结,内容很粗糙,后续会不断完善。 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境,如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kubernetes集群外部用户、客户端等; 服务访问层:即由Traefik ingress实现服务发现、负载均衡和路由规则定义等; 业务应用层:即基于Kubernetes平台构建和运行企业业务应用,如CI/CD持续集成、微服务项目、监控告警和日志管理、私有镜像仓库等服务; 基础设施层:即由Kubernetes容器管理平台和Ceph/NFS数据持久化存储等系统组成的基础设施服务。 下面,我们分别来谈谈各层的具体实现方案。 基础设施层 Kubernetes平台 部署管理:Kubernetes平台除了直接使用公有云如阿里云、AWS等云服务提供商的K8s服务外,我们还可以自己部署和管理等,如使用Kubespray工具。 网络通信:在容器和容器之间、容器和主机网络方面,可以使用 Calico 或Flannel等方案。 HA高可用:Kubernetes节点分为Master和Node两种类型节点,前者负责运行集群相关的控制管理服务,而后者负责运行Pod容器。在多Node节点模式下,由于Kubernetes

9.5任务

坚强是说给别人听的谎言 提交于 2020-12-27 07:43:29
18.1 集群介绍 一台机器完成不了的任务我们交给一大群机器去做,集群就好比一个堆叠起来的计算机。 集群根据功能划分两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务。(保证服务的可用性) 实现高可用的开源软件有:heartbeat、keepalived。 heartbeat在centos6上bug比较多,而且不再更新了,更推荐keepalived。 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2个。 实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler。LVS是非常出名的一款做负载均衡的软件。商业软件的稳定性和应对高访问量是值得肯定的,开源软件的稳定性等就会取决于你的服务器的性能了。 18.2 keepalived介绍 在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果。heartbeat在切换主从的时候有延时,做高可用集群的时候还是推荐使用keepalived。 keepalived通过VRRP(Virtual Router Redundancy Protocl

keepalived高可用简介与配置

早过忘川 提交于 2020-12-27 00:26:22
##keepalived简介 ###keepalived介绍 Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。 Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。 所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。 ###keepalived的重要功能 keepalived 有三个重要的功能,分别是: 管理LVS负载均衡软件 实现LVS集群节点的健康检查 作为系统网络服务的高可用性(failover) ###keepalived高可用故障转移的原理 Keepalived 高可用服务之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的

1分钟搞定 Nginx 版本的平滑升级与回滚

我怕爱的太早我们不能终老 提交于 2020-12-26 19:06:50
Nginx无论是对于运维、开发、还是测试来说,都是日常工作需要掌握的一个知识点,之前也写过不少关于Nginx相关的文章: Nginx服务介绍与安装 Nginx服务配置文件介绍 Nginx配置虚拟主机 Nginx反向代理负载均衡配置 Nginx+Tomcat多实例及负载均衡配置 HTTP服务器Nginx服务介绍续 Nginx优化配置详解 Nginx+keepalived高可用配置实战 Apache VS Nginx,你选对了吗? 基于 Nginx 的 HTTPS 性能优化实践 Nginx 到底可以做什么?看完这篇你就懂了! 深度总结|深入浅出Nginx 终极指南:提高Nginx服务器硬度的12个技巧 有兴趣的可以看看上面的文章。 今天,我们来聊一聊,在企业实际生产环境中经常遇到的一个情况,升级Nginx到新的版本和如何回滚至旧版本。 1、环境介绍 今天准备的两个nginx版本如下: [root@nginx ~]# cd /download/nginx/[root@nginx nginx]# lltotal 1952-rw-r--r-- 1 root root 981687 Oct 17 2017 nginx-1.12.2.tar.gz-rw-r--r-- 1 root root 1015384 Dec 4 09:58 nginx-1.14.2.tar.gz 2、编译安装新旧版本

高可用的 K8S 集群构建

谁说胖子不能爱 提交于 2020-12-24 13:24:30
设置系统主机名以及 Host 文件的相互解析 hostnamectl set-hostname k8s-master01 hostnamectl set-hostname k8s-master02 hostnamectl set-hostname k8s-master03 vi /etc/hosts 10.10.21.8 k8s-master01 10.10.21.28 k8s-master02 10.10.21.38 k8s-master03 10.10.21.100 k8s-vip 安装依赖包 yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget net-tools git 设置防火墙为 Iptables 并设置空规则 systemctl stop firewalld && systemctl disable firewalld yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save 关闭 SELINUX swapoff -a && sed -i '/

Percona XtraDB Cluster(PXC)原理

蹲街弑〆低调 提交于 2020-12-13 07:53:34
###Percona XtraDB Cluster(PXC)原理 ####介绍: PXC曾经属于一套近乎最完美的mysql高可用集群解决方案(现mgr总体上要优于pxc),相比传统的基于主从复制模式的集群架构MHA和MM+keepalived,最突出特点就是解决了数据复制延迟问题,基本上可以达到实时同步。节点间关系是对等的,事务要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证MySQL集群的数据一致性. ####1.PXC使用端口 3306 数据库对外服务端口 4444 SST(State Snapshot Transfer )全量传输端口, 指数据镜象传输,可先配置:xtrabackup , rsync ,mysqldump 4567 :成员通信端口 4568 : IST(Incremental State Transfer )增量传输端口(相对于SST的增量)。 ####2.PXC的优势 强一致性 同步延迟小 每一个节点都可以读写 用箱子推给Group里所有的成员, data page 相当于物理复制,而不是发blog日志,再重现. 同步的是结果数据. 从节点在apply数据时,支持并行执行,有更好的性能表现 ####PXC的执行流程 客户端先发起一个事务先在本地执行,当发起对事务的提交操作时

负载均衡器对比(LVS VS Nginx VS Haproxy)

和自甴很熟 提交于 2020-12-12 15:25:30
LVS: 1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低 2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。 2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived) 3、应用范围比较广,可以对所有应用做负载均衡; 4、不支持正则处理,不能做动静分离。 5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接) 6、配置 复杂,对网络依赖比较大,稳定性很高。 Ngnix: 1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构; 2、Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能; 3、Nginx安装和配置比较简单,测试起来比较方便; 4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发; 5、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。 6、Nginx对请求的异步处理可以帮助节点服务器减轻负载; 7、Nginx仅能支持http、https和Email协议,这样就在适用范围较小。 8、不支持Session的直接保持,但能通过ip_hash来解决。、对Big request header的支持不是很好, 9、支持负载均衡算法

Redis 高可用分布式集群

南楼画角 提交于 2020-12-12 09:41:30
一,高可用 高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影响。 停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自然灾害等不可预期的原因导致,在很多时候也称单点问题。 (1)解决单点问题主要有2种方式: 主备方式 这种通常是一台主机、一台或多台备机,在正常情况下主机对外提供服务,并把数据同步到备机,当主机宕机后,备机立刻开始服务。 Redis HA中使用比较多的是keepalived,它使主机备机对外提供同一个虚拟IP,客户端通过虚拟IP进行数据操作,正常期间主机一直对外提供服务,宕机后VIP自动漂移到备机上。 优点是对客户端毫无影响,仍然通过VIP操作。 缺点也很明显,在绝大多数时间内备机是一直没使用,被浪费着的。 主从方式 这种采取一主多从的办法,主从之间进行数据同步。 当Master宕机后,通过选举算法(Paxos、Raft)从slave中选举出新Master继续对外提供服务,主机恢复后以slave的身份重新加入。 主从另一个目的是进行读写分离,这是当单机读写压力过高的一种通用型解决方案。 其主机的角色只提供写操作或少量的读,把多余读请求通过负载均衡算法分流到单个或多个slave服务器上。 缺点是主机宕机后,Slave虽然被选举成新Master了,但对外提供的IP服务地址却发生变化了,意味着会影响到客户端。

mysql实现主从复制/主从同步

回眸只為那壹抹淺笑 提交于 2020-12-06 05:35:16
业务场景 小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响。这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题。中间使用keepalived监听。下面先从简单的mysql主从搞起。下面按照老方式,what->why->how ,是什么,为什么,怎么做来讲解一波。 (what)什么是mysql 的主从复制? ① 简介 指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。 一句话表示就是,主数据库做什么,从数据库就跟着做什么。 ② mysql复制的类型 1.基于语句的复制 :主库把sql语句写入到bin log中,完成复制 2.基于行数据的复制:主库把每一行数据变化的信息作为事件,写入到bin log,完成复制 3.混合复制:上面两个结合体,默认用语句复制,出问题时候自动切换成行数据复制 tip:和上面相对应的日志格式也有三种:STATEMENT,ROW,MIXED。 1.STATEMENT模式(SBR) 每一条会修改数据的sql语句会记录到binlog中

负载均衡集群 LVS的介绍、调度算法、NAT模式搭建

蓝咒 提交于 2020-12-01 01:50:42
12月20日任务 18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建 负载均衡集群介绍 负载均衡集群主流软件LVS、keepalived、haproxy、nginx等。其中LVS属于4层的负载均衡,nginx属于7层的负载均衡。而haproxy既可以认为是4层负载均衡,也可以当做7层负载均衡使用。 keepalived的负载均衡功能实际上就是内置的LVS实现的。LVS的负载均衡是可以分发除80端口外的其他端口通信的,比如MySQL;nginx仅支持http、https、mail;haproxy也支持MySQL等端口的分发。 相对而言,LVS更稳定,能承受更多的请求;nginx则更灵活,能实现更多的个性化需求。 LVS介绍 LVS是中国人章文嵩开发的一款世界知名的开源软件,流行度不亚于apache的httpd,基于TCP/IP做的路由与转发,稳定性和效率很高。 LVS最新版本基于Linux内核2.6,但是多年未更新了。LVS有三种参见的模式:NAT、DR、IP Tunnel。 LVS架构中有一个核心角色叫做分发器(Load Balance),用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称RS)。 LVS NAT模式 NAT模式是借助iptables的nat表来实现的。