迁移前环境:
salt-master 部署在3台物理机
salt-minion 分布在物理节点和pod 中,并通过salt-master的ip连接到master
迁移要求:
原有salt-master 需要下线
新的salt-master指向域名【salt-master.cmb.dev.pytc.com.】
需要pod和物理节点都可以解析这个域名,并通过域名连接salt-master
迁移方式:
- salt-minion所在物理节点使用 /etc/hosts 解析该域名
- salt-minion 所在容器使用 coreDns 解析该域名
模拟迁移环境
主机名 | ip | 角色 |
---|---|---|
salt-master-1 | 172.16.100.60 | master |
salt-master-2 | 172.16.100.61 | master |
salt-master-3 | 172.16.100.62 | master |
salt-minion-1 | DHCP | minion |
salt-minion-2 | DHCP | minion |
启动master
docker network create bridge-0 -d bridge --subnet=172.16.100.0/24 --gateway=172.16.100.1
docker run -d --name=salt-master-1 --net=bridge-0 --ip 172.16.100.60 salt-master:cpoy
docker run -d --name=salt-master-2 --net=bridge-0 --ip 172.16.100.61 salt-master:cpoy
docker run -d --name=salt-master-3 --net=bridge-0 --ip 172.16.100.62 salt-master:cpoy
启动minion
apiVersion: v1
kind: NameSpace
metadata:
name: salt
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: salt-minio
name: salt-minio
namespace: salt
spec:
replicas: 2
selector:
matchLabels:
app: salt-minio
template:
metadata:
labels:
app: salt-minio
spec:
containers:
- command:
- /usr/bin/salt-minion
image: salt-minion:copy
imagePullPolicy: Never
name: salt-minion
修改coreDns
hosts {
10.4.7.60 salt-master1.cmb.dev.pytc.com.
10.4.7.61 salt-master2.cmb.dev.pytc.com.
10.4.7.62 salt-master3.cmb.dev.pytc.com.
}
验证使用域名通讯
[root@allinone ~]# docker exec -it salt-master-1 salt '*' test.ping
9b3d6af908c2:
True
9b3d6af908c2:
True
得出结论:
slat-master 和 salt-minion 之间通讯的证书不包含通讯双方的主机名、ip地址等信息。如果迁移可以拷贝原有证书和配置文件到新的主机节点,配置minion的连接文件,重启minion的进程即可