部署基础Swarm集群
实验要求:一个管理节点和两个工作节点
主机名 | IP地址 | 分配角色 |
---|---|---|
manager | 192.168.183.110 | manager |
worker01 | 192.168.183.120 | worker |
worker02 | 192.168.183.130 | worker |
简介
- 基于Docker的集群管理工具
- 用户通过API来管理多个主机上的Docker
标准的Docker API
集群管理API - 结合Overlay网络实现容器的调度
Swarm基本特性:
- 集群管理已经被集成进Docker Engine
- 协调预期状态与实际状态的一致性
- 声明式服务模型
- 去中心化设计
- 多主机网络
- 缩放
- 服务发现
- 负载均衡
Swarm架构图
- 使多个Docker组合成一个Group,提供多容器服务
- 使用标准的Docker API
基本配置
配置网络
nmcli connection modify "ens33" ipv4.method manual ipv4.addresses "192.168.183.110/24" ipv4.gateway "192.168.183.2" ipv4.dns "114.114.114.114" connection.autoconnect yes
nmcli con down ens33
nmcli con up ens33
配置防火墙和SELinux
为确保集群之间能正常通信,需进行以下操作:
#配置防火墙
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-port=7946/tcp --permanent
firewall-cmd --zone=public --add-port=7946/udp --permanent
firewall-cmd --zone=public --add-port=4789/tcp --permanent
firewall-cmd --zone=public --add-port=4789/udp --permanent
firewall-cmd --reload
#配置SELinux,临时关闭和开机自启关闭
setenforce 0
getenforce 0
vim /etc/selinux/config
SELIUNX=disabled
修改主机名和hosts文件
#修改主机名
hostnamectl set-hostname manager
bash
#添加地址解析记录
vim /etc/hosts
192.168.183.110 manager
192.168.183.120 worker01
192.168.183.130 worker02
安装docker
#安装最新相关依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 wget telnet lsof
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
yum install -y docker-ce
#开机自启并启动docker
systemctl enable docker
systemctl start docker
#配置加速网站,并重启docker服务
cat <<EOF> /etc/docker/daemon.json
> {
> "registry-mirrors":["https://registry.docker-cn.com"]
> }
> EOF
systemctl restart docker
克隆
做快照并完整克隆2台工作节点并修改IP、hostname即可
worker01:
worker02:
部署Docker Swarm集群
创建Docker Swarm集群
格式:docker swarm init --advertise-addr <MANAGER-IP>
docker swarm init --advertise-addr 192.168.183.160
至此,Docker Swarm集群基础环境已创建成功。
添加节点到集群
在管理节点上使用 docker swarm join-token worker
后查看提示信息,然后在工作节点执行提示信息即可,添加完节点后可使用docker info
查看Swarm集群信息:
查看集群详细信息
#查看集群全部状态信息
docker node ls
#查看管理节点和工作节点详细信息
docker node inspect manage
docker node inspect worker01
docker node inspect worker02