zoukankan      html  css  js  c++  java
  • 跨主机网络-overlay(18)

    docker overlay跨主机网络
    
    1.环境
    
        docker版本
        Docker version 18.02.0-ce, build fc4de44
    
        3台主机
        192.168.55.51  host1
        192.168.55.52  host2
        192.168.55.53  host2
    
    2.部署Consul
    
        Docerk overlay 网络需要一个 key-value 数据库用于保存网络状态信息,包括 Network、Endpoint、IP 等。Consul、Etcd 和 ZooKeeper 都是 Docker 支持的 key-vlaue 软件,我们这里使用 Consul。
        在 docker 主机 host1 上部署支持的组件,比如 Consul
        docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
    
        容器启动后,可以通过 http://192.168.55.51:8500 访问 Consul。
    
        
    
    3.修改docker启动项并重启docker(3台上操作)
        #修改docker daemon 的配置文件/etc/systemd/system/docker.service
    
        [root@host1 ~]# cat /etc/systemd/system/docker.service.d/10-machine.conf 
        [Service]
        ExecStart=
        ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver devicemapper --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic --registry-mirror http://db411c61.m.daocloud.io --cluster-store=consul://192.168.55.51:8500 --cluster-advertise=192.168.55.51:2376
        Environment=
    
    
        #配置说明
        --cluster-store 指定 consul 的地址。
        --cluster-advertise 告知 consul 自己的连接地址。(即docker的连接,2376为docker的端口)
    
        #重启docker
        systemctl daemon-reload
        systemctl restart docker
    
    4.查看host1 和 host2、host3 将自动注册到 Consul 数据库中
        访问http://192.168.55.51:8500
        查看key/value==docker==nodes/   (可以看到3台主全部注册上来了)
    
    5.在 host1 中创建 overlay 网络 ov_net1
        docker network create -d overlay ov_net1
            -d overlay 指定 driver 为 overaly。
        docker network ls 
            查看当前网络:
            [root@host1 ~]# docker network ls
            NETWORK ID          NAME                DRIVER              SCOPE
            8925d1ce67ad        bridge              bridge              local
            0fb41307416f        host                host                local
            fc3f61663c71        none                null                local
            cb5cce10b030        ov_net1             overlay             global
            注意到 ov_net1 的 SCOPE 为 global,而其他网络为 local。在 host2 上查看存在的网络:
            host2 上也能看到 ov_net1。这是因为创建 ov_net1 时 host1 将 overlay 网络信息存入了 consul,host2 从 consul 读取到了新网络的数据。之后 ov_net 的任何变化都会同步到 host1 和 host2、host3。
    
        docker network inspect ov_net1
            查看 ov_net1 的详细信息:
            [root@host1 ~]# docker network inspect ov_net1
            [
                {
                    "Name": "ov_net1",
                    "Id": "cb5cce10b0301720ded000830038183c9752448a77c4010f6d1e194923bf1ef7",
                    "Created": "2018-03-20T15:43:52.509618103+08:00",
                    "Scope": "global",
                    "Driver": "overlay",
                    "EnableIPv6": false,
                    "IPAM": {
                        "Driver": "default",
                        "Options": {},
                        "Config": [
                            {
                                "Subnet": "10.0.0.0/24",
                                "Gateway": "10.0.0.1"
                            }
                        ]
                    },
                    "Internal": false,
                    "Attachable": false,
                    "Ingress": false,
                    "ConfigFrom": {
                        "Network": ""
                    },
                    "ConfigOnly": false,
                    "Containers": {},
                    "Options": {},
                    "Labels": {}
                }
            ]
    
            IPAM 是指 IP Address Management,docker 自动为 ov_net1 分配的 IP 空间为 10.0.0.0/246.运行一个 busybox 容器并连接到 ov_net1
        host1
            docker run -tid --name bbox1 --network ov_net1 busybox
    
            #查看容器的网络配置:
            docker exec bbox1 ip r
        host2
            docker run -tid --name bbox2 --network ov_net1 busybox
    
            #查看容器的网络配置:
            docker exec bbox2 ip r
    
    
        #查看网络互通
        host1上查看
        docker exec bbox1 ping -c 3 bbox2
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/hanxiaohui/p/8611370.html
Copyright © 2011-2022 走看看