• Docker Swarm集群部署


    Docker Swarm集群部署

    任务平台

    3台虚拟机,一台作为manager 节点,另两台作为work节点。

    安装docker

    #下载并安装docker文件及依赖
    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install -y docker-ce docker-ce-cli containerd.io
    #启动docker并设置开机自启
    systemctl start docker  
    systemctl enable docker
    #查看版本
    docker -v
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    配置防火墙开放端口

    TCP协议端口 2377 :集群管理端口
    TCP协议端口 7946 :节点之间通讯端口(不开放则会负载均衡失效)
    UDP协议端口 4789 :overlay网络通讯端口

    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 --reload
    #查看80端口是否开放
    firewall-cmd --query-port=80/tcp
    #查看所有放行的端口
    firewall-cmd --zone=public --list-ports
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在 manager 节点创建 Swarm 集群

    docker swarm init --advertise-addr=本机ip:2377 --listen-addr=本机ip:2377
    
    • 1

    Swarm initialized: current node (608u180nsa654xbxdthdhl0f6) is now a manager.

    To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-13dv43qm3tdux7243z3c0najcetizjpgly1urd4uchtcooxe87-4eh15dbayxttxipm34s5tod6t 172.20.1.51:2377

    To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.

    将执行后产生的命令(如上标红的),分别加入到其他主机中,执行后产生如下结果。即为成功加入。

    或者执行下面命令产生令牌,并且是定期轮换计划(推荐)

    docker swarm join-token  --rotate worker
    
    • 1

    This node joined a swarm as a worker.

    (扩展)加入管理节点的命令

    docker swarm join-token --rotate manager
    
    • 1

    在manager节点上输入docker node ls 可查看所有节点。

    在这里插入图片描述

    创建用于swarm服务的自定义的overlay网络

    #方式一
    #--attachable选项表示该网络是可附加的,即其他容器可以连接到该网络  
    docker network create -d overlay --attachable my-overlay
    
    #方式二
    # --subnet:子网 --gateway:网关
    docker network create --driver overlay --subnet 10.0.9.0/24 --gateway 10.0.9.99 my-overlay
      
     #查看docker网络
     docker network ls
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    测试跨主机容器通信

    1. 在三台主机上各部署一个容器,进行相互ping,结果如下图。
    #主机一
    docker run -it --name master --net=my-overlay ubuntu:latest
    #主机二
    docker run -it --name node1 --net=my-overlay ubuntu:latest
    #主机三
    docker run -it --name node2 --net=my-overlay ubuntu:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 安装测试工具
    apt-get update
    #安装ping工具
    apt-get install inetutils-ping -y
    #安装ip查看工具
    apt-get install net-tools -y
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

  • 相关阅读:
    MySQL主从复制和基于Amoeba的读写分离部署
    【机器学习】为什么进行特征筛选时前要先用相关性筛一遍再进行降维?
    2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-C
    git rebase的基本使用
    SpringCLoud——RabbitMQ的消息模型
    Scala函数定义与使用
    web前端进阶:<6>一个自我简介的小程序
    浙大MBA二战上岸:笔试备考辛酸路
    05-读写锁、阻塞队列及四组API、同步队列
    什么是泛型?
  • 原文地址:https://blog.csdn.net/AMCUL/article/details/132913280