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、开始构建
 
apt-get  install zip
apt-get  install make
apt-get  install make-guile
cd flannel
make dist/flanneld-amd64
 
#    4、将flanneld执行文件拷贝到 host1 和 host2 上
 
scp dist/flanneld-amd64 10.12.31.211:/usr/local/bin/flanneld
scp dist/flanneld-amd64 10.12.31.212:/usr/local/bin/flanneld
 
#    5、将flannel网络的配置信息保存到etcd中
 
[root@docker-machine ~]# cat flannel-config.json
{
  "Network": "10.2.0.0/16",    #    定义该flannel网络的IP池
  "SubnetLen": 24,             #    指定每个host分配到的subnet大小为24位,即 10.2.x.0/24
  "Backend": {
    "Type": "vxlan"            #    backend为vxlan
  }
}
 
#    /docker-test/network/config 是etcd数据项的key,flannel-config.json的内容是etcd数据项的 value
 
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 set /docker-test/network/config < flannel-config.json
{
  "Network": "10.2.0.0/16",
  "SubnetLen": 24,
  "Backend": {
    "Type": "vxlan"
  }
}
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get /docker-test/network/config
{
  "Network": "10.2.0.0/16",
  "SubnetLen": 24,
  "Backend": {
    "Type": "vxlan"
  }
}
 
#    6、在host上启动flannel
 
root@host1:~# flanneld-amd64 -etcd-endpoints=http://10.12.31.213:2379 -iface=ens160 -etcd-prefix=/docker-test/network &
I0329 23:15:03.568863    4615 main.go:529] Using interface with name ens160 and address 10.12.31.211
I0329 23:15:03.568916    4615 main.go:546] Defaulting external address to interface address (10.12.31.211)
I0329 23:15:03.569029    4615 main.go:244] Created subnet manager: Etcd Local Manager with Previous Subnet: 10.2.46.0/24
I0329 23:15:03.569051    4615 main.go:247] Installing signal handlers
I0329 23:15:03.570648    4615 main.go:388] Found network config - Backend type: vxlan
I0329 23:15:03.570718    4615 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
I0329 23:15:03.598548    4615 local_manager.go:147] Found lease (10.2.46.0/24) for current IP (10.12.31.211), reusing
I0329 23:15:03.622441    4615 main.go:311] Changing default FORWARD chain policy to ACCEPT
I0329 23:15:03.622590    4615 main.go:319] Wrote subnet file to /run/flannel/subnet.env
I0329 23:15:03.622621    4615 main.go:323] Running backend.
I0329 23:15:03.622734    4615 vxlan_network.go:60] watching for new subnet leases
I0329 23:15:03.651253    4615 main.go:431] Waiting for 22h59m59.996415542s to renew lease
root@host1:~# ip addr show flannel.1
9: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
    link/ether 0e:38:3f:4c:d5:02 brd ff:ff:ff:ff:ff:ff
    inet 10.2.46.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::c38:3fff:fe4c:d502/64 scope link
       valid_lft forever preferred_lft forever
root@host1:~# ip route
default via 10.12.28.6 dev ens160 onlink
10.2.1.0/24 via 10.2.1.0 dev flannel.1 onlink
10.12.28.0/22 dev ens160  proto kernel  scope link  src 10.12.31.211
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1 linkdown
172.22.0.0/16 via 10.12.28.1 dev ens160
 
 
 
root@host2:~# flanneld-amd64 -etcd-endpoints=http://10.12.31.213:2379 -iface=ens160 -etcd-prefix=/docker-test/network &
I0329 23:14:58.702967    2452 main.go:529] Using interface with name ens160 and address 10.12.31.212
I0329 23:14:58.703079    2452 main.go:546] Defaulting external address to interface address (10.12.31.212)
I0329 23:14:58.703267    2452 main.go:244] Created subnet manager: Etcd Local Manager with Previous Subnet: 10.2.1.0/24
I0329 23:14:58.703295    2452 main.go:247] Installing signal handlers
I0329 23:14:58.705106    2452 main.go:388] Found network config - Backend type: vxlan
I0329 23:14:58.705156    2452 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
I0329 23:14:58.729435    2452 local_manager.go:147] Found lease (10.2.1.0/24) for current IP (10.12.31.212), reusing
I0329 23:14:58.741472    2452 main.go:311] Changing default FORWARD chain policy to ACCEPT
I0329 23:14:58.741672    2452 main.go:319] Wrote subnet file to /run/flannel/subnet.env
I0329 23:14:58.741697    2452 main.go:323] Running backend.
I0329 23:14:58.741761    2452 vxlan_network.go:60] watching for new subnet leases
I0329 23:14:58.757628    2452 main.go:431] Waiting for 22h59m59.965049243s to renew lease
root@host2:~# ip addr show flannel.1
9: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
    link/ether 56:42:ec:d7:7d:7d brd ff:ff:ff:ff:ff:ff
    inet 10.2.1.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::5442:ecff:fed7:7d7d/64 scope link
       valid_lft forever preferred_lft forever
root@host2:~# ip route
default via 10.12.28.6 dev ens160 onlink
10.2.46.0/24 via 10.2.46.0 dev flannel.1 onlink
10.12.28.0/22 dev ens160  proto kernel  scope link  src 10.12.31.212
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1 linkdown
172.22.0.0/16 via 10.12.28.1 dev ens160
 
 
etcd库查询方法:
 
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 ls
/docker-test
/foo
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 ls /docker-test
/docker-test/network
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 ls /docker-test/network
/docker-test/network/config
/docker-test/network/subnets
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 ls /docker-test/network/config
/docker-test/network/config
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get  /docker-test/network/config
{
  "Network": "10.2.0.0/16",
  "SubnetLen": 24,
  "Backend": {
    "Type": "vxlan"
  }
}
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get  /docker-test/network/subnets
/docker-test/network/subnets: is a directory
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 ls  /docker-test/network/subnets
/docker-test/network/subnets/10.2.46.0-24
/docker-test/network/subnets/10.2.1.0-24
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get  /docker-test/network/subnets/10.2.46.0-24
{"PublicIP":"10.12.31.211","BackendType":"vxlan","BackendData":{"VtepMAC":"66:2b:a5:56:0d:c6"}}
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get  /docker-test/network/subnets/10.2.1.0-24
{"PublicIP":"10.12.31.212","BackendType":"vxlan","BackendData":{"VtepMAC":"8a:8c:b5:42:47:40"}}
 
 

059、安装配置flannel(2019-03-28 周四)的更多相关文章

  1. 第 8 章 容器网络 - 059 - 安装配置 flannel

    安装配置 flannel 1) build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build. 不过用于做 build ...

  2. 安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)

    上一节我们部署了 etcd,本节安装和配置 flannel. build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 buil ...

  3. 2019.03.28 bzoj3326: [Scoi2013]数数(数位dp)

    传送门 题意: 一个人数数,规则如下: 确定数数的进制B 确定一个数数的区间[L, R] 对于[L, R] 间的每一个数,把该数视为一个字符串,列出该字符串的所有连续子串对应的B进制数的值. 对所有列 ...

  4. 2019.03.28 bzoj3322: [Scoi2013]摩托车交易(kruskal重构树+贪心)

    传送门 题意咕咕咕 思路: 先把所有可以列车通的缩成一个点,然后用新图建立kruskalkruskalkruskal重构树. 这样就可以倒着贪心模拟了. 代码: #include<bits/st ...

  5. 2019.03.28 bzoj3325: [Scoi2013]密码(manacher+模拟)

    传送门 题意: 现在有一个nnn个小写字母组成的字符串sss. 然后给你nnn个数aia_iai​,aia_iai​表示以sis_isi​为中心的最长回文串串长. 再给你n−1n-1n−1个数bib_ ...

  6. 2019.03.28 bzoj3597: [Scoi2014]方伯伯运椰子(01分数规划)

    传送门 题意咕咕咕有点麻烦不想写 思路: 考虑加了多少一定要压缩多少,这样可以改造边. 于是可以通过分数规划+spfaspfaspfa解决. 代码: #include<bits/stdc++.h ...

  7. 2019.03.28 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)

    传送门 题意咕咕咕 思路:直接上二维bitbitbit优化dpdpdp即可. 代码: #include<bits/stdc++.h> #define N 10005 #define K 5 ...

  8. 2019.03.28 bzoj3598: [Scoi2014]方伯伯的商场之旅(带权中位数+数位dp)

    传送门 题意咕咕咕自己读吧挺简单的 思路: 由带权中位数的性质可以得到对于每个数放在每个二进制位的代价一定是个单调或者单峰函数,因此我们先把所有的数都挪到第一个位置,然后依次向右枚举峰点(极值点)把能 ...

  9. 2019.03.28 bzoj3595: [Scoi2014]方伯伯的Oj(splay+map+set)

    传送门 题意简述: 给一个有优先级的nnn个人的序列,初始的时候第iii个人排名为iii,现在有mmm个操作,种类如下: 把编号为xxx的改成yyy,输出改前xxx的排名 把编号为xxx放到队首,输出 ...

随机推荐

  1. LOJ #2537. 「PKUWC 2018」Minimax (线段树合并 优化dp)

    题意 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点. 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入 ...

  2. [luogu1198][bzoj1012][JSOI2008]最大数【线段树+分块】

    题目描述 区间查询最大值,结尾插入,强制在线. 分析 线段树可以做,但是练了一下分块,发现自己打错了两个地方,一个是分块的地方把/打成了%,还有是分块的时候标号要-1. 其他也没什么要多讲的. 代码 ...

  3. stm32使用rt-thread在文件《stm32f1xx_hal.h》中头文件包含顺序引出的错误

    @2019-01-24 [小记] 在学习 rt-thread BSP制作过程中,发现文件<stm32f1xx_hal.h>中 Env工具生成的原始顺序 1. #include " ...

  4. Ability

    Base:网络安全,sklearn(ML),日本語,企业存储 Branch1:自动化,Git Branch2:HW系统架构 Branch3:shadowsocks源码:

  5. 利用ansible批量部署zabbix-agent

    应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...

  6. 20165223 实验三 敏捷开发与XP实践

    目录 一.实验报告封面 二.具体实验内容 (一)敏捷开发与XP实践-1 代码规范格式化 (二)敏捷开发与XP实践-2 添加搭档项目 (三)敏捷开发与XP实践-3 搭档代码重构 (四)敏捷开发与XP实践 ...

  7. webpack入门(二)what is webpack

    webpack is a module bundler.webpack是一个模块打包工具,为了解决上篇一提到的各种模块加载或者转换的问题. webpack takes modules with dep ...

  8. mybatis 二级缓存

    Mybatis读取缓存次序: 先从二级缓存中获取数据,如果有直接获取,如果没有进行下一步: 从一级缓存中取数据,有直接获取,如果没有进行下一步: 到数据库中进行查询,并保存到一级缓存中: 当sqlSe ...

  9. bzoj4869: [Shoi2017]相逢是问候(欧拉函数+线段树)

    这题是六省联考的...据说数据还出了点锅,心疼六省选手QAQ 首先要知道扩展欧拉定理... 可以发现每次区间操作都会使模数进行一次phi操作,而一个数最多取logp次phi就会变成1,这时后面的指数就 ...

  10. 【洛谷P1164 小A点菜】

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:“随便点”. 题目描述 不过uim由于买了一些辅(e ...