我正在尝试使用两个主机配置 Pacemaker 集群,我使用两个 centos 7(CentOS Linux 版本 7.2.1511(核心))虚拟机。
我目前所做的是:我安装了软件包:
yum 安装 pacemaker corosync haproxy pcs fence-agents-all
在两台服务器上为用户 hacluster 设置密码。在两台机器上编辑 /etc/hosts
10.0.0.14 vm_haproxy1 10.0.0.15 vm_haproxy2
之后在两台服务器上启用服务
systemctl 启用 pcsd.service pacemaker.service corosync.service haproxy.service
并启动 pcsd(在两台服务器上)
systemctl 启动 pcsd.service
两个服务都在运行,我可以通过端口 2224 从一个服务远程登录到另一个服务
远程登录 vm_haproxy1 2224 尝试 10.0.0.14... 已连接到 vm_haproxy1。 转义字符是‘^]’。
netstat 的输出:
[root@vm_haproxy2 ~]# netstat -tulpn 活动互联网连接(仅限服务器) Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 0.0.0.0:22 0.0.0.0:* 监听 849/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* 监听 946/主服务器 tcp6 0 0 :::2224 :::* 侦听 1949/ruby tcp6 0 0 :::22 :::* 侦听 849/sshd tcp6 0 0 ::1:25 :::* 侦听 946/主控 udp 0 0 127.0.0.1:323 0.0.0.0:* 619/chronyd udp6 0 0 ::1:323 :::* 619/chronyd
Pcsd 绑定到 ipv6,但就像我已经说过的,telnet 可以工作,Selinux 和firewalld 已被禁用。
然后我尝试授权主机
pcs 集群身份验证 vm_haproxy1 vm_haproxy2
但我收到一个错误:
pcs 集群身份验证 vm_haproxy1 vm_haproxy2 用户名:hacluster 密码: 错误:无法与 vm_haproxy1 通信 错误:无法与 vm_haproxy2 通信
我在 Google 上没有找到任何帮助。也许有人已经用 pcs 授权解决了这个问题。
答案1
我通常不会在我的集群中使用 pcsd,但是有时候,我记得在我拥有一个可以正常工作的集群之后设置身份验证;先实现功能,然后再考虑装饰。
在设置身份验证之前,我会尝试从两个节点使用以下命令来创建 corosync 配置并启动集群:
# pcs cluster setup --local --name haproxy-cluster0 vm_haproxy1 vm_haproxy2
# systemctl start corosync
# systemctl start pacemaker
一旦您在输出中看到您的节点在线crm_mon
,请尝试设置节点身份验证的步骤。
答案2
我遇到了这个问题。就我而言,我将其追溯到正在设置的代理的环境变量。
要检查这一点:首先运行启用的命令--debug
:
pcs --debug cluster auth clua club cluc
在调试输出中我可以看到:
Sending HTTP Request to: https://club:2224/remote/check_auth
Data: None
Response Reason: Tunnel connection failed: 404 Not Found
...
"I, [2017-04-05T10:54:21.333320 #6755] INFO -- : No response from: cluc request: /auth, exception: 404 \"Not Found\"\n",
"I, [2017-04-05T10:54:21.334344 #6755] INFO -- : No response from: club request: /auth, exception: 404 \"Not Found\"\n",
"I, [2017-04-05T10:54:21.334852 #6755] INFO -- : No response from: clua request: /auth, exception: 404 \"Not Found\"\n"
对其尝试使用的 URL 运行 curl 会得到更明确的信息:
# curl https://club:2224/remote/check_auth
curl: (56) Received HTTP code 404 from proxy after CONNECT
取消设置http_proxy
并https_proxy
使其工作。
如果您没有太多节点,则可以将它们列在no_proxy
环境变量中。否则会有点麻烦 - 您需要确保始终在未设置代理环境变量的情况下运行 pcs 命令。到目前为止,我还没有找到任何方法来配置 pcs 不使用这些变量。
您可以编写一个小包装器来取消设置变量,然后调用 pcs。
答案3
如果您使用的是 CentOS 7,请检查:
systemctl start pcsd.service
systemctl enable pcsd.service
现在将start
运行它。如果出现任何错误消息,则应予以解决。导致enable
它在下次启动时自动启动。
答案4
就我的情况而言,我仅使用以下命令在防火墙中打开端口:
firewall-cmd --add-port=2224/tcp --permanent && firewall-cmd --reload
那么一切都会好起来