docker swarm安装和使用

Posted gsls200808

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker swarm安装和使用相关的知识,希望对你有一定的参考价值。

一、安装

官网:https://docs.docker.com/engine/swarm/

安装docker 建议>=23.0.0,从23.0.0开始支持csi存储插件

每台机器都需要安装docker,安装命令如下

yum install -y https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el8.x86_64.rpm
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service

二、初始化集群

初始化命令

docker swarm init --advertise-addr 192.168.3.75

这里的192.168.3.75为<MANAGER1-IP>,根据需要改成你自己的ip

初始化速度非常快,执行初始化的节点为管理节点,界面会提示加入节点的语句。

如果关闭了窗口,可以通过下面的命令重新查看加入

加入节点token查看

#加入管理节点的token查看
docker swarm join-token manager
#加入工作节点的token查看
docker swarm join-token worker

开启防火墙端口

firewall-cmd --add-port=2377/tcp --permanent     #集群管理通信
firewall-cmd --add-port=7946/tcp --permanent     #节点间通信
firewall-cmd --add-port=7946/udp --permanent     #节点间通信
firewall-cmd --add-port=4789/udp --permanent     #overlay网络流量
firewall-cmd --reload

加入集群

 docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2 192.168.3.75:2377

集群节点的相关操作

#查看所有节点
docker node ls
#升级worker为manager节点
docker node promote node-3 node-2
#降级manager节点为worker节点
docker node demote node-3 node-2

集群相关操作

#退出集群
docker swarm leave
#强制退出集群
docker swarm leave --force

docker swarm里的节点分为管理节点和工作节点,官方建议管理节点个数是奇数。

与k8s不同的是管理节点默认情况下是可以部署程序的。

如果不需要管理节点部署程序,可以--constraint node.labels.node!=manager 指定

三、部署示例程序nginx

docker swarm部署程序有两种方式,一种是docker service方式,另一种是docker stack的yaml文件方式。

1.docker service方式

部署命令

docker service create --replicas 1 --name my-nginx -p 8000:80 nginx:1.20.0

访问

http://ip:8000

2.docker stack的yaml文件方式

docker集群模式下也支持yaml部署,不过是Docker stack类型的yaml,与docker compse的yaml类似,但不完全一样,不支持docker-compose的环境变量如image: name:$IMAGE_VERSION,不支持build、links和network_mode,Docker stack有一个新的指令deploy,yaml文件版本必须>=3,常用的版本为3.6。

编辑stack文件nginx-stack.yml,内容如下

version: '3.6'
services:

  my-nginx:
    image: nginx:1.20.0
    environment:
      - TZ=Asia/Shanghai

    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
      update_config:
        parallelism: 1
        delay: 10s
        monitor: 30s
        max_failure_ratio: 0.1
        order: start-first
    ports:
      - 8000:80

    networks:
      - my-net

networks:
  my-net:
    external: true

执行命令

#创建网络
docker network create --driver overlay my-net
#部署yaml
docker stack deploy --compose-file nginx-stack.yml vossibility

访问

http://ip:8000

以上是关于docker swarm安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

docker swarm安装和使用

【docker swarm】docker swarm 中的网段冲突问题

openfaas 安装(docker swarm 模式)

Docker Swarm

docker swarm

linux docker swarm集群安装