Pacemaker 中的节点服务器之间必须通过 Corosync 建立集群通信,需要安装以下软件包(以及它们的依赖软件包,通常软件包管理器将自动所有依赖软件包):
corosync 软件包安装之后,首先创建它的配置文件:/etc/corosync/corosync.conf 。大多数 Linux 发行版都会附带一份配置示例:corosync.conf.example,大致内容如下:
Corosync 配置文件(corosync.conf).
totem {
version: 2
# Time (in ms) to wait for a token
token: 10000
# How many token retransmits before forming a new
# configuration
token_retransmits_before_loss_const: 10
# Turn off the virtual synchrony filter
vsftype: none
# Enable encryption
secauth: on
# How many threads to use for encryption/decryption
threads: 0
# This specifies the redundant ring protocol, which may be
# none, active, or passive.
rrp_mode: active
# The following is a two-ring multicast configuration.
interface {
ringnumber: 0
bindnetaddr: 192.168.42.0
mcastaddr: 239.255.42.1
mcastport: 5405
}
interface {
ringnumber: 1
bindnetaddr: 10.0.42.0
mcastaddr: 239.255.42.2
mcastport: 5405
}
}
amf {
mode: disabled
}
service {
# Load the Pacemaker Cluster Resource Manager
ver: 1
name: pacemaker
}
aisexec {
user: root
group: root
}
logging {
fileline: off
to_stderr: yes
to_logfile: no
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
tags: enter|leave|trace1|trace2|trace3|trace4|trace6
}}
注意
如果是在 Ubuntu 14.04 系统中运行 Corosync 2,那么应该将 stanza 对应的
service 配置段删除或者全部注释,以确保 Pacemaker 可以启动。
Corosync 启动方法和普通的系统服务没有区别,根据 Linux 发行版的不同,可能是 LSB init脚本、upstart 任务、systemd 服务。不过习惯上,都会统一使用 corosync 这一名称:
# corosync-cfgtool -s
Printing ring status.
Local node ID 435324542
RING ID 0
id = 192.168.42.82
status = ring 0 active with no faults
RING ID 1
id = 10.0.42.100
status = ring 1 active with no faults
corosync-objctl 命令可以列出 Corosync 集群的成员节点列表:
# corosync-objctl runtime.totem.pg.mrp.srp.members
runtime.totem.pg.mrp.srp.435324542.ip=r(0) ip(192.168.42.82) r(1) ip(10.0.42.100)
runtime.totem.pg.mrp.srp.435324542.join_count=1
runtime.totem.pg.mrp.srp.435324542.status=joined
runtime.totem.pg.mrp.srp.983895584.ip=r(0) ip(192.168.42.87) r(1) ip(10.0.42.254)
runtime.totem.pg.mrp.srp.983895584.join_count=1
runtime.totem.pg.mrp.srp.983895584.status=joined
status=joined标示着每一个集群节点成员。
Corosync 服务启动之后,一旦各节点正常建立集群通信,就可启动 pacemakerd( Pacemaker 主进程):
Pacemaker 服务启动之后,会自动建立一份空白的集群配置,不包含任何资源。可以通过crm_mon 工具查看 Packemaker 集群的状态:
============
Last updated: Sun Oct 7 21:07:52 2012
Last change: Sun Oct 7 20:46:00 2012 via cibadmin on node2
Stack: openais
Current DC: node2 - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ node2 node1 ]
Pacemaker 启动之后,建议首先对集群基本属性进行配置。配置时,首先执行 crm 命令,然后输入 configure 进入配置菜单。也可以执行 crm configure 命令直接进入 Pacemaker 配置菜单。
然后,设置下列属性:
property no-quorum-policy="ignore"
pe-warn-series-max="1000"
pe-input-series-max="1000"
pe-error-series-max="1000"
cluster-recheck-interval="5min"
作完这些改变后,可以提交更新配置。
期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~💪💪💪
附专栏链接
【云原生 · Kubernetes】部署 kube-proxy 组件
【云原生 · Kubernetes】部署高可用kube-scheduler集群
【云原生 · Kubernetes】部署高可用 kube-controller-manager 集群
【云原生 · Kubernetes】runtime组件
【云原生 · Kubernetes】apiserver高可用