1、Docker集群网络配置之Weave

  Weave是Github上一个比较热门的Docker容器网络方案,具有非常良好的易用性且功能强大。仓库地址:https://github.com/weaveworks/weave.git。

  Weave由两大主要组件组成:

    Weave:用户态shell脚本,用于安装Weave,将container连接到Weave虚拟网络,并为他们分配IP。

    Weaver:运行于container内,每个Weave网络内的主机都要运行,它是一个Go语言实现的虚拟网络路由器,不同主机之间的网络通信都依赖于Weaver路由。

  Weave简单使用:

    Host1

      启动Weave:weave launch

      启动容器:weave run 10.2.1.1/24 -t -i ubuntu bash

    Host2

      启动Weave并连接Host1:weave launch $Host1-IP

      启动容器:weave run 10.2.1.2/24 -t -i ubuntu bash

    测试两个容器之间可以通信。

  Weave其他命令:

    weave launch [-password] [-nickname]:启动时设置节点之间互通的密码

    weave connect $OTHER_HOST_IP:连接其他weave host主机

    weave attach IP $ID:将已经运行的容器动态添加到网络,detach命令为剥离

    weave ps:查看containers列表

    weave status:查看weave状态

  Weave缺点:

    不支持服务发现,主机不能动态加入节点网络,只能手动通过weave launch或connect加入weave网络

    不支持动态分配IP

2、Docker集群网络配置之Flannel

  安装:从https://github.com/coreos/flannel/releaseshttps://github.com/coreos/etcd/releases分别下载Flannel和Etcd的最新版本二进制包。
  解压后将Flannel的二进制文件“flanneld”和脚本文件“mk-docker-opts.sh”、以及Etcd的二进制文件“etcd”和“etcdctl”放到系统的PATH目录下即可。

  创建集群:

    Host1:IP 172.16.10.189

      etcd -name infra0 -initial-advertise-peer-urls http://172.16.10.189:2380 -listen-peer-urls  http://172.16.10.189:2380 -initial-cluster-token etcd-cluster-1 -initial-cluster infra0=http://172.16.10.189:2380,infra1=http://172.16.10.88:2380 -initial-cluster-state new

    Host2:IP 172.16.10.88

      etcd -name infra1 -initial-advertise-peer-urls http://172.16.10.88:2380 -listen-peer-urls  http://172.16.10.88:2380 -initial-cluster-token etcd-cluster-1 -initial-cluster infra0=http://172.16.10.189:2380,infra1=http://172.16.10.88:2380 -initial-cluster-state new

  查看集群成员列表(任一主机都可):  

    [root@kvm ~]# etcdctl member list
    5b2b3a252a3f1a96: name=infra1 peerURLs=http://172.16.10.88:2380 clientURLs=http://localhost:2379 isLeader=false
    70b69a104d137154: name=infra0 peerURLs=http://172.16.10.189:2380 clientURLs=http://localhost:2379 isLeader=true

  写入Flannel网络配置

    etcdctl mkdir /coreos.com/network/

    etcdctl set /coreos.com/network/config '{"Network":"10.1.0.0/16","SubnetLen":24,"SubnetMin":"10.1.0.0","SubnetMax":"10.1.128.0"}'

  每台主机都运行flanneld

  每台主机重新配置docker

    sudo mk-docker-opts.sh -i
    source /run/flannel/subnet.env
    sudo rm /var/run/docker.pid
    sudo ifconfig docker0 ${FLANNEL_SUBNET} 
  重启docker进程,之后在启动容器,此时主机1和2的容器互通 3、Docker集群网络配置之SocketPlane
  仓库地址:https://github.com/socketplane/socketplane
  SocketPlane的安装配置比较简单,只需要运行源码目录下的scripts/install.sh就可安装。
  会下载SocketPlane和Powerstrip两个镜像,以容器的方式运行SocketPlane主程序。
  查看SocketPlane运行是否正常
  docker ps  #显示socketplane正在运行
  socketplane agent logs  #日志无异常,满足这两个条件即运行正常
  创建socketplane网络:socketplane network create frontend 192.168.0.1/24
  创建一个名为frontend,IP段为192.168.0.1/24的子网。
  查看当前集群内包含几个子网:socketplane network list,结果以集合的方式的显示
  利用socketplane启动容器:socketplane run -n frontend -tid ubuntu:latest bash
  进去容器查看网络:docket exec -ti $ID ip addr show
  可看到容器自动从frontend子网获取了一个IP,socketplane底层使用consul同步数据,保证IP不冲突
  查看socketplane信息:socketplane info

Docker(六):Docker网络配置进阶的更多相关文章

  1. docker系列之网络配置

    docker 网络配置 docker 安装后, 会自动在系统做一个网桥配置 docker0 . 其容器都会分配到此网桥配置下的独立, 私有 IP 地址. 如果你要自己配置桥接, 也可以把 docker ...

  2. 【爬坑系列】之docker的overlay网络配置(未完,待续)

    理论知识储备: 想了解vxlan网络的知识:https://www.cnblogs.com/shuiguizi/p/10923841.html 想了解docker网络的原理知识:https://www ...

  3. Docker网络配置进阶

    Docker启动会默认创建docker0虚拟网桥,是Linux的一个bridge,可以理解成一个软件交换机.它会在挂载到它的网口之间进行转发. 之后所有容器都是在172.17.0.x的网段上,并且可以 ...

  4. docker 容器间网络配置

    创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...

  5. docker网络配置方法总结

    docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...

  6. 高级网络功能(Docker支持的网络定制配置)

    网络的高级知识,包括网络的启动和配置参数.DNS的使用配置.容器访问和端口映射的相关实现. 在一些具体场景中,Docker支持的网络定制配置,通过Linux命令来调整.补充.甚至替换Docker默认的 ...

  7. Docker Network Configuration 高级网络配置

    Network Configuration TL;DR When Docker starts, it creates a virtual interface named docker0 on the ...

  8. Docker 四种网络模式

    原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络 ...

  9. 网络配置——Linux运维基础

    今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...

随机推荐

  1. 高性能、高可用、高扩展ERP系统架构设计

    ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...

  2. Unity塔防游戏开发

    Unity3D塔防开发流程 配置环境及场景搭建编程语言:C#,略懂些许设计模式,如果不了解设计模式,BUG More开发工具:Unity3D编辑器.Visual Studio编译器开发建议:了解Uni ...

  3. C++反汇编第一讲,认识构造函数,析构函数,以及成员函数

    C++反汇编第一讲,认识构造函数,析构函数,以及成员函数 以前说过在C系列下的汇编,怎么认识函数.那么现在是C++了,隐含有构造和析构函数 一丶认识构造函数 高级代码: class MyTest { ...

  4. 【javaFX学习】(二) 面板手册--1

    找了好几个资料,没找到自己想要的,自己写个列表吧,方便以后用的时候挑选,边学边记.以学习笔记为主,所以会写的会偏个人记忆性.非教程,有什么问题一起讨论啊. 各个不同的控件放入不同的面板中有不同的效果, ...

  5. sqlserver的四种分页方式

    第一种:ROW_NUMBER() OVER()方式 select * from ( select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId f ...

  6. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  7. ESLint 的正式使用感受

    介绍ESLint ESLint 是一个代码规范和错误检查工具,有以下几个特性 所有东西都是可以插拔的.你可以调用任意的rule api或者formatter api 去打包或者定义rule or fo ...

  8. weakSelf 和 strongSelf

    最近在看SDWebImage源码,碰到一些比较绕的问题,理解了很久,然后在网上查了些的资料,才算是有了一些理解.在此记录一下. 源码如下: block会copy要在block中使用的实变量,而copy ...

  9. Azure IoT Edge on Raspberry Pi 3 with Raspbian

    在<Azure IoT Edge on Windows 10 IoT Core>一文中,我们以运行Windows 10 IoT Core的MinnowBoard MAX为例,详细讲述了Wi ...

  10. Vux配置指南

    流程 Vux是Vue.js的一个ui库,官网在这里,官方文档的配置指南侧重于技术的罗列,我这里简化一下Vux的配置流程. 1. 安装vux npm install vux --save 2. 安装le ...