欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker Swarm集群

程序员文章站 2022-05-07 14:35:44
...

一、Swarm 关键概念

1、Swarm

集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的 swarm

2、Node

一个节点(node)是已加入到 swarm 的 Docker 引擎的实例 当部署应用到集群,你将会提交服务定义到管理节点,接着 Manager管理节点调度任务到 worker 节点,manager 节点还执行维护集群的状态的编排和群集管理功能,worker 节点接收并执行来自

manager 节点的任务。通常,manager 节点也可以是 worker 节点,worker 节点会报告当前状态给 manager 节点

3、服务(Service)

服务是要在 worker 节点上要执行任务的定义,它在工作者节点上执行,当你创建服务的时,你需要指定容器镜像

4、任务(Task)

任务是在 docekr 容器中执行的命令,Manager 节点根据指定数量的任务副本分配任务给 worker 节点
Docker Swarm集群

二、环境准备
3台虚拟机:
系统:Linux Center OS 7
Docker版本: 19.03.1
虚拟机1:192.168.226.145(swarm01)
虚拟机2:192.168.226.146(swarm02)
虚拟机3:192.168.226.147(swarm03)

1、修改主机名
修改主机名

hostnamectl set-hostname swarm01

查看主机名

hostname       

2、swarm安装

docker pull swarm

3、建立集群
swarm01为leader,swarm02、swarm03为节点
3.1 master机器上swarm初始化

docker swarm init

命令执行后,该机器自动加入到swarm集群。这个会创建一个集群token,获取全球唯一的 token,作为集群唯一标识。后续将其他节点加入集群都会用到这个token值
Docker Swarm集群
3.2查看该集群相关信息

docker node ls 

Docker Swarm集群
3.3.节点执行初始化集群时提供的命令
Docker Swarm集群
3.4再次查看集群

docker node ls 

Docker Swarm集群
3.5 节点离开集群

docker swarm leave  --froce

3.6 leader删除节点

docker node rm

3.7 再次获取leader上的token信息

docker swarm join-token manager

Docker Swarm集群
3.8 查看集群网络

docker network ls

Docker Swarm集群

3.9 创建集群网络(用于内部通信)

docker network create -d  overlay --attachable 网络名称

再次查看

docker network ls

Docker Swarm集群
4、创建服务
4.1创建服务

docker service create 服务名

docker service rm 服务名

参数
–name 服务名
–network 集群网络名称
–mount 数据挂载
–constraint node.hostname==主机名
–env 环境

示例:

docker service rm citydew-admin
docker service create \
--name citydew-admin \
--network wushan \
--mount type=bind,source="$(pwd)"/app.tgz,target=/server/data/app.tgz \
--constraint node.hostname==master \
--replicas 1 -p 9055:9055 \
--log-opt "tag=citydew-admin" \
--env "downloadURL=file:///server/data/app.tgz"  \
--env "redis_ip=192.168.11.100" \
--env "postgresql_ip=192.168.11.100" \
--env "postgresql_user=ascs" \
--env "postgresql_pwd=ascs.123456" \
--env "database_name=ascs_auth" \
--env "rabbitmq_host=192.168.11.100" \
--env "rabbitmq_port=5672" \
--env "rabbitmq_username=ascs" \
--env "rabbitmq_password=ascs" \
--env "rabbitmq_virtualHost=/" \
11.23.254.120:5000/public/openjdk:1.0.0
相关标签: 集群

上一篇: 数据库基础

下一篇: SQL学习小结