• 安装配置 flannel


    上一节我们部署了 etcd,本节安装和配置 flannel。

    build flannel

    flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问,为方便大家,我把它 mirror 到了 docker hub,构建步骤如下:

    1. 下载并重命名 image。

      docker pull cloudman6/kube-cross:v1.6.2-2

      docker tag cloudman6/kube-cross:v1.6.2-2 gcr.io/google_containers/kube-cross:v1.6.2-2

    2. 下载 flannel 源码。

      git clone https://github.com/coreos/flannel.git

    3. 开始构建。

      cd flannel

      make dist/flanneld-amd64

    4. 将 flanneld 执行文件拷贝到 host1 和 host2。

      scp dist/flanneld-amd64 192.168.56.104:/usr/local/bin/flanneld

      scp dist/flanneld-amd64 192.168.56.105:/usr/local/bin/flanneld

    将 flannel 网络的配置信息保存到 etcd

    先将配置信息写到文件 flannel-config.json 中,内容为:

    {

      "Network": "10.2.0.0/16",

      "SubnetLen": 24,

      "Backend": {

        "Type": "vxlan"

      }

    }

    1. Network 定义该网络的 IP 池为 10.2.0.0/16

    2. SubnetLen 指定每个主机分配到的 subnet 大小为 24 位,即10.2.X.0/24

    3. Backend  vxlan,即主机间通过 vxlan 通信,后面我们还会讨论host-gw

    将配置存入 etcd:
    etcdctl --endpoints=192.168.56.101:2379 set /docker-test/network/config < flannel-config.json

    /docker-test/network/config 是此 etcd 数据项的 key,其 value 为 flannel-config.json 的内容。key 可以任意指定,这个 key 后面会作为 flanneld 的一个启动参数。执行 etcdctl get 确保设置成功。

    启动 flannel

    在 host1 和 host2 上执行如下命令:
    flanneld -etcd-endpoints=http://192.168.56.101:2379 -iface=enp0s8 -etcd-prefix=/docker-test/network

    -etcd-endpoints 指定 etcd url。

    -iface 指定主机间数据传输使用的 interface。

    -etcd-prefix 指定 etcd 存放 flannel 网络配置信息的 key。

    host1 上输出如下:

    ① enp0s8 被选作与外部主机通信的 interface。

    ② 识别 flannel 网络池 10.2.0.0/16。

    ③ 分配的 subnet 为 10.2.40.0/24。

    flanneld 启动后,host1 内部网络会发生一些变化:

    1. 一个新的 interface flannel.1 被创建,而且配置上 subnet 的第一个 IP 10.2.40.0。

    2. host1 添加了一条路由:目的地址为 flannel 网络 10.2.0.0/16 的数据包都由 flannel.1 转发。 

    host2 输出类似,主要区别是 host2 的 subnet 为 10.2.17.0/24:

    当前环境网络拓扑如图所示:

    flannel 已经就绪,下一节演示如何在 Docker 中使用 flannel 网络。

    二维码+指纹.png

  • 相关阅读:
    五十:数据库之Flask-Script详解
    四十九:数据库之Flask-SQLAlchemy下alembic的配置
    四十八:数据库之alembic常用命令和经典错误的解决办法
    四十七:数据库之alembic数据库迁移工具的基本使用
    四十六:数据库之Flask-SQLAlchemy的使用
    四十五:数据库之SQLAlchemy之subquery实现复杂查询
    四十四:数据库之SQLAlchemy之join实现复杂查询
    四十三:数据库之SQLAlchemy之group_by和having子句
    四十二:数据库之SQLAlchemy之数据查询懒加载技术
    四十一:数据库之SQLAlchemy之limlt、、slice、offset及切片
  • 原文地址:https://www.cnblogs.com/CloudMan6/p/7424858.html
Copyright © 2020-2023  润新知