Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群
Neokylin-Server离线环境、跨主机、使用Docker部署PXC集群
一、说明
背景:NeoKylin使用swarm、macvlan、calico组网docker环境中pxc高可用不成功后,使用flannel+etcd成功,记录过程如下。
系统:Neokylin-Server-5.0_U4-x86_64-Release-B14-20190320。
使用说明:pxc做集群;Haproxy做负载均衡;Keepalived浮动ip;etcd+Flannel保证容器跨主机互通;ntpdate时间同步、busybox做测试
环境:
虚拟机(节点)名称 | ip | 部署 |
---|---|---|
m1 | 192.168.136.21 | Haproxy、Keepalived、etcd、busybox |
m2 | 192.168.136.22 | Haproxy、Keepalived、etcd、busybox |
m3 | 192.168.136.23 | Haproxy、Keepalived、etcd、busybox |
n1 | 192.168.136.26 | pxc、busybox |
n2 | 192.168.136.27 | pxc、busybox |
n3 | 192.168.136.28 | pxc、busybox |
部署相关文件:
- 链接:https://pan.baidu.com/s/1OAsF0Kq–umgBZIIHVSWpg
提取码:e39i
二、部署过程:
1. 切换root账号或所有语句加sudo;
2. 关闭6个节点防火墙(或打开端口);
systemctl stop firewalld
systemctl disable firewalld
3. 6个节点导入rpm包后安装基础环境:
rpm基础环境包放置于百度网盘中
rpm -ivh *.rpm --replacefiles --force –nodeps
说明:安装基础环境,docker,ntpdate,keepalived,flannel,etcd,其中etcd只有m1、m2、m3使用
4. 设置所有节点;
修改6个节点名称为m1、m2、m3、n1、n2、n3
hostnamectl set-hostname <newhostname>
修改6个节点hosts文件
vim /etc/hosts
结尾追加
192.168.136.21 m1
192.168.136.22 m2
192.168.136.23 m3
192.168.136.26 n1
192.168.136.27 n2
192.168.136.28 n3
5. 启动docker并导入images;
设置6个节点自启动docker
systemctl start docker
systemctl enable docker
导入docker images,为后续使用做准备,语句举例:
docker load < pxc56.tar
虚拟机(节点)名称 | 导入images |
---|---|
m1 | my-haproxy.tar、busybox.tar |
m2 | my-haproxy.tar、busybox.tar |
m3 | my-haproxy.tar、busybox.tar |
n1 | pxc56.tar、busybox.tar |
n2 | pxc56.tar、busybox.tar |
n3 | pxc56.tar、busybox.tar |
6. 时间同步;
6个节点通过ntpdate时间同步,一般需要联网同步,这里使用时间服务器,192.168.136.1设置为提供ntp服务的win10电脑:
ntp 192.168.136.1
也可以通过联网时间同步:
ntpdate cn.pool.ntp.org
7. etcd集群配置;
备份etcd的配置文件:
cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak
编辑m1主机/etc/etcd/etcd.conf文件为:
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
ETCD_NAME="m1"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://m1:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://m1:2379,http://m1:4001"
ETCD_INITIAL_CLUSTER="m1=http://m1:2380,m2=http://m2:2380,m3=http://m3:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"