zoukankan      html  css  js  c++  java
  • CentOS 7 Flannel的安装与配置

    1. 安装前的准备

    etcd 3.2.9

    Docker 17.12.0-ce

    三台机器10.100.97.236, 10.100.97.92, 10.100.97.81

    etcd不同版本之间的差别还是挺大的,使用V3版本跟Flannel整合起来会有坑,下文详解。

    2. 安装

    sudo yum install -y flannel

    安装后,版本是0.7.1

    3. 在etcd中设置变量

    1 etcdctl put /coreos.com/network/config '{ "Network": "172.17.0.0/16" }'
    2 curl -X PUT http://127.0.0.1:2379/v2/keys/coreos.com/network/config -d value='{ "Network": "172.17.0.0/16" }'

    有两种方法可以设置,但是flannel 0.7.1版默认使用的是etcd V2的http接口,所以如果etcd是V3版本而且用第一种方法设置那么会导致fannel读取不到配置,运行flannel会报错failed to retrieve network config: 100: Key not found (/coreos.com);如果ectd是V2版本,那么两种方法设置都可以。

    同时,如果出现类似的报错,可以使用下面的命令测试

    curl http://172.0.0.1:2379/v2/keys/coreos.com/network/config

    4. 放开8285 udp端口

    sudo firewall-cmd --zone=public --add-port=8285/udp --permanent
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports
    

    5. 创建日志目录

    sudo mkdir -p /var/log/flannel
    

    6. 修改flanneld配置

    sudo vim /etc/sysconfig/flanneld
    

    修改为

    FLANNEL_ETCD_ENDPOINTS="http://10.100.97.236:2379,http://10.100.97.92:2379,http://10.100.97.81:2379"
    FLANNEL_ETCD_PREFIX="/coreos.com/network"
    FLANNEL_OPTIONS="--logtostderr=false --log_dir=/var/log/flannel/ --iface=你的网卡名字"
    

    7. 启动

    sudo systemctl daemon-reload
    sudo systemctl start flanneld
    sudo systemctl status flanneld
    sudo systemctl enable flanneld

    8. 配置Docker

    Flanneld服务需要先于Docker启动,此时应该停掉Docker,待配置完之后重启。

    配置好Flanneld之后它会从etcd中获取network的配置信息,然后划分subnet并在etcd中进行注册,然后将子网信息记录到/run/flannel/subnet.env中,最后将subnet.env转写成一个docker的环境变量文件/run/flannel/docker。

    可以通过以下命令查看相关文件信息:

    cat /run/flannel/subnet.env
    cat /run/flannel/docker
    

    此外,Flanneld还会自动修改Docker的配置

    systemctl show docker
    

     我们需要修改/usr/lib/systemd/system/docker.service,并应用/run/flannel/docker当中的DOCKER_NETWORK_OPTIONS配置:

    sudo vi /usr/lib/systemd/system/docker.service
    
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock $DOCKER_NETWORK_OPTIONS
    

    重启Docker:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo systemctl status docker
    

     9. 测试安装结果

    ip addr show
    

    查看docker的地址段是否在etcd中存储的地址段中。

  • 相关阅读:
    微服务-1初识
    RESTful-5开发API
    RESTful-4使用教程
    RESTful-3架构详解
    RESTful-2一分钟理解什么是REST和RESTful
    RESTful-1概述
    Swagger-概述
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-2项目搭建
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明
    (大数 startsWith substring) Exponentiation hdu1063
  • 原文地址:https://www.cnblogs.com/eagle6688/p/8311587.html
Copyright © 2011-2022 走看看