zoukankan      html  css  js  c++  java
  • Docker进阶学习-2 swarm overlay测试

    之所以研究swarm overlay,是因为在研究边缘计算框架EdgeX时,他默认使用映射端口方式,尝试使用docker swarm解决不同主机分开部署服务时的docker互相访问问题

    首先转载网上一张图

    1、拓扑结构如下

    管理节点:要将应用程序部署到swarm,需要向管理节点提交一个服务定义。管理节点将称为任务的工作单元分派给工作节点。执行所需的编排和群集管理功能,以保持群的所需状态。管理节点选择一个领导者来执行编排任务。

    工作节点:接收并执行从管理节点调度的任务。默认情况下,管理节点也将服务作为工作节点运行,但您可以将它们配置为以独占方式运行管理任务并仅作为管理节点。代理在每个工作节点上运行,并报告分配给它的任务。worker节点将其分配任务的当前状态通知给manager节点,以便manager可以保持每个worker的所需状态。

    2、在管理节点1上执行

    docker swarm init
    

    执行结果 

    Swarm initialized: current node (8pbeemanze4hic086lg9vatgq) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-5u7vluy344umgyreimctpoeuvabz4yp5dz4xney55cypvsv15n-9r5e5at6z1ri63b2azy0ob81p 192.168.137.6:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

    3、在管理节点1上创建overlay 网络net1

       docker network create -d overlay --attachable demo

    返回一串数字

    yxc3n42en2j8s2xewrmzax6es

    以工作节点1为例: 

    4、在工作节点1上执行加入主机

    docker swarm join --token SWMTKN-1-5u7vluy344umgyreimctpoeuvabz4yp5dz4xney55cypvsv15n-9r5e5at6z1ri63b2azy0ob81p 192.168.137.6:2377
    

    5、docker network ls

     只有一个名为ingreee的overlay网络

    6、在管理节点1、工作节点1上分别执行

    sudo docker run -it --rm  --name test1 --net demo busybox /bin/sh 
    sudo docker run -it --rm  --name test2 --net demo busybox /bin/sh

    然后从新开一个ssh连接,r可以看到名为demo的

     如果docker删除掉,那么这个网络也会消失,说明是按需创建的。

     进入容器,退出容器前后(退出自动删除容器)对比

     7、在两个容期间互相访问

     8、修改EdgeX docker compose文件,修改networks部分为

     其它服务部分也改成

     9、启动

    提示:ERROR: Network demo declared as external, but could not be found. Please create the network manually using `docker network create demo` and try again.

    10、按第6步,随便启动一个基于demo网络的容器,可以启动了,查看地址,确实加入demo网络了

    不知道算不算一个BUG。

    11、适应场景

    如果在不同节点创建一个相同的docker名称,将会绑定失败。

     12、Vi替换方法

    vi模式批量替换字符串

    :s/old_string/new_string/g
    

    /word 自当前光标位置向下搜索名字为word的字符串
    ?word 自当前光标位置向上搜索名字为word的字符串
    :n 1,n 2 s/word1/word2/g 在n1行与n2行之间搜索名字为word1的字符串,并将其替换成word2
    :1,$s/word1/word2/g 在第一行与最后一行之间搜索名字为word1的字符串,并将其替换成word2

    本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。
    另外建了几个QQ技术群:
    2、全栈技术群:616945527,加群口令abc123
    2、硬件嵌入式开发: 75764412
    3、Go语言交流群:9924600

    闲置域名www.nsxz.com出售(等宽等高字符四字域名)。
  • 相关阅读:
    安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法
    C# tostring 格式化输出 (转)
    WPF button 如何区分click和doubleclick
    二叉树算法
    关于OA流程相关数据表的设计
    没事干写写流程审批数据库的设计
    挂载system.img并提取文件
    使Checkbox禁用,不可选
    Android显示网速的另一种方法
    C语言 解压华为固件
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/15170757.html
Copyright © 2011-2022 走看看