centos7下搭建高可用集群

疯狂110 疯狂110     2022-09-19     357

关键词:

、安装集群软件

必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件。

二、配置防火墙
1、禁止防火墙和selinux
# systemctl disable firewalld
# systemctl stop firewalld
2、设置防火墙规则
# firewall-cmd --permanent --add-service=high-availability
# firewall-cmd --add-service=high-availability
三、各节点之间主机名互相解析
分别修改2台主机名分别为node1和node2,在CentOS 7中直接修改/etc/hostname加入本机主机名和主机表,然后重启网络服务即可。

#vi /etc/hostname
node1
#systemctl restart network.service
#hostname
node1
配置2台主机的主机表,在/etc/hosts中加入

192.168.122.168 node1
192.168.122.169 node2
四、各节点之间时间同步
在node1和node2分别进行时间同步,可以使用ntp实现。

[[email protected] ~]# ntpdate 172.16.0.1 //172.16.0.1 为时间服务器
五、各节点之间配置ssh的无密码密钥访问
下面的操作需要在各个节点上操作。

# ssh-keygen -t rsa -P ‘’ #这个生成一个密码为空的公钥和一个密钥,把公钥复制到对方节点上即可
# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] #对方主机名用登录用户名
两台主机都要互相可以通信,所以两台主机都得互相生成密钥和复制公钥,相互的节点上的hosts文件是都要解析对方的主机名, 192.168.122.168 node1 192.168.122.169 node2

# ssh node2 ‘date’;date #测试一下是否已经互信
六、通过pacemaker来管理高可用集群
1、创建集群用户
为了有利于各节点之间通信和配置集群,在每个节点上创建一个hacluster的用户,各个节点上的密码必须是同一个。

# passwd hacluster

Changing password for user hacluster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
2、设置pcsd开机自启动
# systemctl start pcsd.service
# systemctl enable pcsd.service
3、集群各节点之间进行认证
# pcs cluster auth node1 node2Username: hacluster Password: node1: Authorized node2: Authorized
4、创建并启动集群
[[email protected] ~]# pcs cluster setup --start --name my_cluster node1 node2

node1: Succeeded
node1: Starting Cluster...
node2: Succeeded
node2: Starting Cluster...
5、设置集群自启动
# pcs cluster enable –all
6、查看集群状态信息
[[email protected] ~]# pcs cluster status
7、设置fence设备
这个可以参考
corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默 认配置目前尚不可用,这可以通过如下命令验证:

#crm_verify -L -V
可以通过如下面命令禁用stonith:

#pcs property set stonith-enabled=false(默认是true)
8、配置存储
高可用集群既可以使用本地磁盘来构建纯软件的镜像型集群系统,也可以使用专门的共享磁盘装置来构建大规模的共享磁盘型集群系统,充分满足客户的不同需求。
共享磁盘主要有iscsi或DBRD。本文并没有使用共享磁盘

9、配置浮点ip
不管集群服务在哪运行,我们要一个固定的地址来提供服务。在这里我选择192.168.122.101作为浮动IP,给它取一个好记的名字 ClusterIP 并且告诉集群 每30秒检查它一次。

# pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.122.170 cidr_netmask=24 op monitor interval=30s
# pcs update VIP op monitor interval=15s
10、配置apache服务
在node1和node2上安装httpd ,确认httpd开机被禁用。

# systemctl status httpd.service;
配置httpd监控页面(貌似不配置也可以通过systemd监控),分别在node1和node2上执行。

# cat > /etc/httpd/conf.d/status.conf << EOF
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
EOF
首先我们为Apache创建一个主页。在centos上面默认的Apache docroot是/var/www/html,所以我们在这个目录下面建立一个主页。
node1节点修改如下:

[[email protected] ~]# cat </var/www/html/index.html

Hello node1


END
node2节点修改如下:

[[email protected] ~]# cat </var/www/html/index.html

Hello node2


END
下面语句是将httpd作为资源添加到集群中:

#pcs resource create WEB apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status"
11、创建group
将VIP和WEB resource捆绑到这个group中,使之作为一个整体在集群中切换(此配置为可选)。

# pcs resource group add MyGroup VIP
# pcs resource group add MyGroup WEB
12、配置服务启动顺序
以避免出现资源冲突,语法:(pcs resource group add的时候也可以根据加的顺序依次启动,此配置为可选)。

# pcs constraint order [action] then [action]
# pcs constraint order start VIP then start WEB
13、指定优先的 Location (此配置为可选)
Pacemaker 并不要求你机器的硬件配置是相同的,可能某些机器比另外的机器配置要好。这种状况下我们会希望设置:当某个节点可用时,资源就要跑在上面之类的规则。为了达到这个效果我们创建location约束。同样的,我们给他取一个描述性的名字(prefer-node1),指明我们想在上面跑WEB 这个服务,多想在上面跑(我们现在指定分值为50,但是在双节点的集群状态下,任何大于0的值都可以达到想要的效果),以及目标节点的名字:

# pcs constraint location WEB prefers node1=50
# pcs constraint location WEB prefers node2=45
这里指定分值越大,代表越想在对应的节点上运行。

14、资源粘性(此配置为可选)
一些环境中会要求尽量避免资源在节点之间迁移,迁移资源通常意味着一段时间内无法提供服务,某些复杂的服务,比如Oracle数据库,这个时间可能会很长。为了达到这个效果,Pacemaker 有一个叫做“资源粘性值”的概念,它能够控制一个服务(资源)有多想呆在它正在运行的节点上。
Pacemaker为了达到最优分布各个资源的目的,默认设置这个值为0。我们可以为每个资源定义不同的粘性值,但一般来说,更改默认粘性值就够了。资源粘性表示资源是否倾向于留在当前节点,如果为正整数,表示倾向,负数则会离开,-inf表示负无穷,inf表示正无穷。

# pcs resource defaults resource-stickiness=100
常用命令汇总:
查看集群状态:#pcs status

查看集群当前配置:#pcs config

开机后集群自启动:#pcs cluster enable –all

启动集群:#pcs cluster start –all

查看集群资源状态:#pcs resource show

验证集群配置情况:#crm_verify -L -V

测试资源配置:#pcs resource debug-start resource

设置节点为备用状态:#pcs cluster standby node1

在vm里搭建高可用spark集群

说明:本机是在win10系统下,安装用的是VMware15,centOS7,JDK1.8,spark-2.4.0,hadoop-2.7.7,apache-hive-2.3.4,scala-2.12.8。在VMware里创建了node01,node02,node03,node04四个节点(或者叫四个虚拟机)。注意在使用vm14版本的时候出现黑屏,情况如下:在vm上... 查看详情

搭建高可用mongodb集群——分片

搭建高可用mongodb集群(四)——分片 按照上一节中《搭建高可用mongodb集群(三)——深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器... 查看详情

windows2012系统搭建高可用故障转移集群

Windows 2012 系统搭建高可用故障转移集群一、故障转移集群介绍 21.1 系统介绍 21.2 工作原理 2二、实验目的 22.1 验证故障转移功能 22.2 验证高可用集群的可用性,以及支持的服务类型 2... 查看详情

搭建高可用mongodb集群——分片(经典)

...tp://www.lanceyan.com/tech/arch/mongodb_shard1.html按照上一节中《搭建高可用mongodb集群(三)——深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支... 查看详情

云原生|kubernetes篇自建高可用k8s集群优化(代码片段)

文末有惊喜 文章目录自建高可用k8s集群优化一、Docker配置优化二、优化kubelet三、时区问题自建高可用k8s集群优化一、Docker配置优化#所有节点执行//max-concurrent-downloads:最大并发下载//"max-concurrent-uploads":最大并发上传//... 查看详情

云原生|kubernetes篇自建高可用k8s集群前置概念与操作(代码片段)

文章目录自建高可用k8s集群前置概念与操作一、内核升级二、k8s集群架构三、cfssl使用1、集群相关证书类型2、简单使用3、cfssl使用4、证书规划5、证书生成自建高可用k8s集群前置概念与操作一、内核升级3.10内核在大规模集群具... 查看详情

nginx搭建高可用集群(代码片段)

1、简介微服务中,为防止服务提供者宕掉,提供多个服务,nginx同样,如果只使用一个nginx,可能发生单点故障,导致整个微服务不可用。2、什么是nginx高可用3、准备工作(1)需要两台nginx服务器&#... 查看详情

搭建高可用mongo集群

简介:    MongoDB是一个可扩展、高性能的分布式文档存储数据库,由C语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。MongoDB是一个介于关... 查看详情

kubernetes通过kind在本机搭建高可用集群

kind安装官方文档:https://kind.sigs.k8s.io/docs/user/quick-start/#installing-with-a-package-managerkind配置文件说明:https://kind.sigs.k8s.io/docs/user/configuratSnownothing,reapnothing. 查看详情

通过keepalived搭建高可用的lvs负载均衡集群

一、keepalived软件简介keepalived是基于vrrp协议实现高可用功能的一种软件,它可以解决单点故障的问题,通过keepalived搭建一个高可用的LVS负载均衡集群时,keepalived还能检测后台服务器的运行状态。二、vrrp协议原理简介vrrp(虚拟... 查看详情

lvs+keepalived搭建高可用负载均衡(代码片段)

应用环境:LVS负责多台WEB端的负载均衡(LB);Keepalived负责LVS的高可用(HA),这里介绍主备模型。测试环境:HOSTNAMEIPSYSTEMDR1192.168.10.234CENTOS7.5DR2192.168.10.235CENTOS7.5RS1192.168.10.236CENTOS7.5RS2192.168.10.237CENTOS7.5VIP192.168.10.23 查看详情

使用keepalived搭建高可用的lvs-dr集群

使用keepalived搭建高可用的LVS-DR集群 一:Keepalived服务概述keepalived是一个类似于 layer3,4&5交换机制的软件,也就是我们平时说的第 3层、第 4层和第 5层交换。 Keepalived的作用是检测 web服务器的状态,如... 查看详情

#云原生征文#自建高可用k8s集群前置概念与操作

自建高可用k8s集群前置概念与操作一、内核升级3.10内核在大规模集群具有不稳定性内核升级到4.19+#查看内核版本uname-sr#0、升级软件包,不升级内核yumupdate-y--exclude=kernel*#1、下载公钥rpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm-U... 查看详情

搭建高可用mongodb集群——分片

从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一... 查看详情

云原生|kubernetes篇自建高可用k8s集群搭建(代码片段)

文末有惊喜文章目录自建高可用k8s集群搭建一、所有节点基础环境1、环境准备与内核升级2、安装Docker二、PKI三、证书工具准备1、下载证书工具2、ca根配置3、ca签名请求4、生成证书5、k8s集群是如何使用证书的四、etcd高可用搭建... 查看详情

使用kubeadm搭建高可用的k8s集群(代码片段)

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:#创建一个Master节点$kubeadminit#将一个Node节点加入到当前集群中$kubeadmjoin<Master节点的IP和端口>1.安装要... 查看详情

java进阶之光!手动搭建高可用的redis5-0分片集群

ES集群架构演进之路1、初始阶段订单中心ES初始阶段如一张白纸,架设方案基本没有,很多配置都是保持集群默认配置。整个集群部署在集团的弹性云上,ES集群的节点以及机器部署都比较混乱。同时按照集群维度来... 查看详情

lvs+keepalived+nginx搭建高可用负载均衡集群(详细配置步骤讲解)(代码片段)

一.准备工作  首先我们要准备四台虚拟机如下表所示:主机IPMASTER192.168.204.130192.168.204.208(VIP)real_server1192.168.204.135real_server2192.168.204.137BACKUP192.168.204.1381.在主机和备机上都要安装LVS和keepalived:安装LVS:yuminstallipvsadm-y安 查看详情