Docker swarm集群
Docker swarm集群
swarm的教程不是很好找
在prodect的engine中将容器编排和集群部署的地方讲
swarm工作模式
Docker Engine 1.12 引入了 swarm 模式,使您能够创建一个由一个或多个 Docker 引擎组成的集群,称为 swarm。swarm 由一个或多个节点组成:在 swarm 模式下运行 Docker Engine 1.12 或更高版本的物理或虚拟机。
swarm 命令
1 | Usage: docker swarm COMMAND |
创建swarm流程
在这之前应该给每台机器做一个hostname
1 | vi /etc/hostname |
以下的命令都可以通过–help
1 | 1 创建一个swarm |
部署portainer Swarm
官方网站 https://www.portainer.io/
dockerhub https://hub.docker.com/r/portainer/portainer
官方启动文档 https://documentation.portainer.io/v2.0/deploy/ceinstallswarm/
修改启动模式
1 | [root@Docker-swarm-manager01 ~]# vi /usr/lib/systemd/system/docker.service |
下载YML
1 | curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml |
启动stack portainer
docker stack deploy -c portainer-agent-stack.yml portainer –with-registry-auth
解决volume 挂在卷问题
部署应用
弹性扩缩容
告别docker run!
容器就是玩具脱离了编排没有任何意义
dockercompose是单机的
集群:swarm docker service
k8s service pods
容器> 服务!
灰度发布
1 | 1创建一个服务 |
Dockers Stack
1 | docker-compose 单机部署 |
附件
RAFT
保证大多数节点存活拆可以用
1 | 试验证明至少要有多数节点存活才行 |
命令>管理节点>api>调度>工作节点
内部原理
关键命令组
docker swarm 管理群
- swarm create
- docker swarm join-token worker
- docker swarm join-token manager
docker node 管理节点
- docker node promote swarm04.my
docker service 管理服务
- docker service ps
- docker service rm
- docker service update
- docker service scale
这是一个集群管理命令,必须在 swarm manager 节点上执行。要了解管理器和工作器,请参阅文档中的 Swarm 模式部分。
网络模式
网络模式PubishMode : ingress
Swarm:
Overlay:
ingress: 是一个特殊的Overlay 网络! 防护在均衡的功能! IPVS VIP
1 | [root@swarm01 ~]# docker network ls |