• docker跨主机通信-overlay


    使用consul

    1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul。
    直接运行下面命令。启动consul。

    docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap

    2,同步网络信息的工具安装好了,那么肯定需要容器能够使用这个同步工具,以便consul能够找到各个服务器的docker节点。修改各个节点 docker的启动配置文件/lib/systemd/system/docker.service。在 ExecStart 最后添加

    --cluster-store=consul://<consul服务的ip地址>:8500
    --cluster-advertise=eth0(当前对外ip使用的网卡名或者直接使用当前ip):2376

    3,保证所有主机的docker配置文件都与2一致,这样就能保证所有的docker overlay网络同步在consul上。
    基本上需要配置的工作我们都已经完成了。

    4,在随机一台机器上创建overlay网络(比如我想创建的docker的mongo集群网络互通,我创建了一个mongo的overlay的网络):
    docker network create -d overlay mongo
    这个时候,你在别的机器上执行docker network ls,你将能够看到在上一台机器创建的overlay网络

    使用docker swarm 的overlay 网络

    非集群即docker swarm 创建的服务(docker service create 这种),也就是使用docker run 启动的容器附加到此网络上。

    注意:在管理节点创建overlay 网络后,只有在管理节点创建服务后,在工作节点才能出现overlay 网络,然后将容器网络附加到docker swarm 网络上即可。

    ## 在管理节点创建overlay 网络
    docker network create --opt encrypted --driver overlay --attachable   tt
    
    #管理节点查看网络情况
    [xxxx@centos-m ~]$ docker  network  ls
    NETWORK ID          NAME                DRIVER              SCOPE
    f583b9e65520        bridge              bridge              local
    5af05ec8c792        docker_gwbridge     bridge              local
    ebfdd7fb8719        host                host                local
    r4geqg1szdc1        ingress             overlay             swarm
    88c236d07e7c        none                null                local
    lug5me4dil6u        tt                  overlay             swarm
    2a320895c372        walle_walle-net     bridge              local
    
    
    #工作节点1查看网络
    [xxxx@centos-s ~]$ docker  network ls 
    NETWORK ID          NAME                DRIVER              SCOPE
    5302500564b4        bridge              bridge              local
    550f3511d5b4        docker_gwbridge     bridge              local
    3905db71d4f5        host                host                local
    r4geqg1szdc1        ingress             overlay             swarm
    da68ab23664b        none                null                local
    
    #工作节点2查看网络
    [xxxx@centos-s2 ~]$ docker network ls 
    NETWORK ID          NAME                DRIVER              SCOPE
    e716d217eb0f        bridge              bridge              local
    fa6a911939b4        docker_gwbridge     bridge              local
    9f837a936ccf        host                host                local
    r4geqg1szdc1        ingress             overlay             swarm
    49ac475ae221        none                null                local
    
    
    
    
    ##创建服使工作节点出现创建的overlay 网络
    
    docker network create --opt encrypted --driver overlay --attachable   tt
    
    非加密网络
    docker network create -d overlay --attachable   tt2
    
    
    ##创建用于激活工作节点overlay 网络的镜像
    dockerfile 
    
    [xxxx@centos-m ~]$ cat  Dockerfile 
    FROM busybox
    MAINTAINER  yon@xxxx.com
    ENTRYPOINT  ["tail","-f","/etc/hosts"]
    
    
    docker  build    -t busybox-swarm  .       swarm 集群都要操作
    
    ##激活overlay 网络
    
    docker service create --replicas 3   --name  busybox-net  --network   tt  busybox-swarm 
    
    查看服务
    
    [xxxx@centos-m ~]$ docker  service  ls
    ID                  NAME                MODE                REPLICAS            IMAGE                  PORTS
    2gzw41kxbiau        busybox-net         replicated          3/3                 busybox-swarm:latest 
    
    查看节点
    [xxxx@centos-m ~]$ docker  service  ps busybox-net
    ID                  NAME                IMAGE                  NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
    10mmg3xh23rn        busybox-net.1       busybox-swarm:latest   centos-s            Running             Running 20 seconds ago                       
    0h2z09vh34jp        busybox-net.2       busybox-swarm:latest   centos-s2           Running             Running 20 seconds ago                       
    vuosx2rrpgyr        busybox-net.3       busybox-swarm:latest   centos-m            Running             Running 21 seconds
    
    
    ##在其他节点起容器附加至overlay网络
    docker run -it --rm  --net=tt  busybox  /bin/sh
    测试  ping  busybox-net     过20秒左右开始反应
    
    
    
    
    
    
  • 相关阅读:
    python修改pip源
    python if条件判断dataframe是否为空
    bowtie和bowtie2使用条件区别及用法
    bat批处理for循环嵌套
    常用的数据标准化方法
    python学习——利用循环实现分类散点图绘制
    python学习——通过命令行参数根据fasta文件中染色体id提取染色体序列
    python学习——把读取fasta文件的代码封装成函数
    python学习——把计算GC含量的代码封装成函数
    python学习——使用argparse参数解释器传递命令行参数
  • 原文地址:https://www.cnblogs.com/g2thend/p/11723000.html
Copyright © 2020-2023  润新知