flannel 是 CentOS开发的容器网络解决方案。flannel 为每个host分配一个subnet,容器从此subnet中分配IP,这些Ip可以在host间路由,容器间无需NAT和port mapping就可以跨主机通信
 
每个subnet都是从一个更大的IP池中划分的,flannel会在每个host上运行一个叫flanneld的agent,其职责就是从池子中分配subnet。为了在各个host间共享信息,flannel用etcd(与consul类似的key-value分布式数据库)存放网络配置、已分配的subnet、host的IP信息等
 
数据包如何在host间转发是由backend实现的。flannel提供了多种backend,最常用的有vxlan和host-gw,我们将在本章学习这两种backend。其他backend请参考https://github.com/coreos/flannel
 
安装etcd步骤
 
#    1、安装etcd
 
ETCD_VER=v2.3.7
DOWNLOAD_URL=https://github.com/coreos/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir -p /tmp/test-etcd && tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/test-etcd --strip-components=1
cp /tmp/test-etcd/etcd* /usr/local/bin/
 
#    2、启动etcd
 
etcd -listen-client-urls http://10.12.31.213:2379 -advertise-client-urls http://10.12.31.213:2379
 
#    3、测试etcd
 
etcdctl --endpoints=10.12.31.213:2379 set foo "bar"
etcdctl --endpoints=10.12.31.213:2379 get foo
 
 
[root@docker-machine ~]# ETCD_VER=v2.3.7
[root@docker-machine ~]# DOWNLOAD_URL=https://github.com/coreos/etcd/releases/download
[root@docker-machine ~]# curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   153    0   153    0     0     11      0 --:--:--  0:00:13 --:--:--    43
100   620    0   620    0     0     41      0 --:--:--  0:00:14 --:--:--   679
100 8347k  100 8347k    0     0  17858      0  0:07:58  0:07:58 --:--:-- 11273
[root@docker-machine ~]# mkdir -p /tmp/test-etcd && tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/test-etcd --strip-components=1
etcd-v2.3.7-linux-amd64/Documentation/
etcd-v2.3.7-linux-amd64/Documentation/runtime-configuration.md
etcd-v2.3.7-linux-amd64/Documentation/admin_guide.md
etcd-v2.3.7-linux-amd64/Documentation/tuning.md
etcd-v2.3.7-linux-amd64/Documentation/glossary.md
etcd-v2.3.7-linux-amd64/Documentation/rfc/
etcd-v2.3.7-linux-amd64/Documentation/rfc/v3api.md
etcd-v2.3.7-linux-amd64/Documentation/discovery_protocol.md
etcd-v2.3.7-linux-amd64/Documentation/errorcode.md
etcd-v2.3.7-linux-amd64/Documentation/metrics.md
etcd-v2.3.7-linux-amd64/Documentation/security.md
etcd-v2.3.7-linux-amd64/Documentation/configuration.md
etcd-v2.3.7-linux-amd64/Documentation/docker_guide.md
etcd-v2.3.7-linux-amd64/Documentation/dev/
etcd-v2.3.7-linux-amd64/Documentation/dev/release.md
etcd-v2.3.7-linux-amd64/Documentation/members_api.md
etcd-v2.3.7-linux-amd64/Documentation/auth_api.md
etcd-v2.3.7-linux-amd64/Documentation/backward_compatibility.md
etcd-v2.3.7-linux-amd64/Documentation/platforms/
etcd-v2.3.7-linux-amd64/Documentation/platforms/freebsd.md
etcd-v2.3.7-linux-amd64/Documentation/libraries-and-tools.md
etcd-v2.3.7-linux-amd64/Documentation/implementation-faq.md
etcd-v2.3.7-linux-amd64/Documentation/reporting_bugs.md
etcd-v2.3.7-linux-amd64/Documentation/upgrade_2_2.md
etcd-v2.3.7-linux-amd64/Documentation/internal-protocol-versioning.md
etcd-v2.3.7-linux-amd64/Documentation/upgrade_2_1.md
etcd-v2.3.7-linux-amd64/Documentation/faq.md
etcd-v2.3.7-linux-amd64/Documentation/api_v3.md
etcd-v2.3.7-linux-amd64/Documentation/runtime-reconf-design.md
etcd-v2.3.7-linux-amd64/Documentation/clustering.md
etcd-v2.3.7-linux-amd64/Documentation/proxy.md
etcd-v2.3.7-linux-amd64/Documentation/branch_management.md
etcd-v2.3.7-linux-amd64/Documentation/other_apis.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-2-2-0-rc-memory-benchmarks.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-3-demo-benchmarks.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-2-2-0-benchmarks.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-2-1-0-alpha-benchmarks.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-storage-memory-benchmark.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/README.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-2-2-0-rc-benchmarks.md
etcd-v2.3.7-linux-amd64/Documentation/benchmarks/etcd-3-watch-memory-benchmark.md
etcd-v2.3.7-linux-amd64/Documentation/api.md
etcd-v2.3.7-linux-amd64/Documentation/authentication.md
etcd-v2.3.7-linux-amd64/Documentation/04_to_2_snapshot_migration.md
etcd-v2.3.7-linux-amd64/Documentation/upgrade_2_3.md
etcd-v2.3.7-linux-amd64/Documentation/production-users.md
etcd-v2.3.7-linux-amd64/README-etcdctl.md
etcd-v2.3.7-linux-amd64/etcdctl
etcd-v2.3.7-linux-amd64/etcd
etcd-v2.3.7-linux-amd64/README.md
[root@docker-machine ~]# cp /tmp/test-etcd/etcd* /usr/local/bin/
 
[root@docker-machine ~]# etcd -listen-client-urls http://10.12.31.213:2379 -advertise-client-urls http://10.12.31.213:2379 &
2019-03-29 22:18:28.093120 I | etcdmain: etcd Version: 2.3.7
2019-03-29 22:18:28.093183 I | etcdmain: Git SHA: fd17c91
2019-03-29 22:18:28.093188 I | etcdmain: Go Version: go1.6.2
2019-03-29 22:18:28.093197 I | etcdmain: Go OS/Arch: linux/amd64
2019-03-29 22:18:28.093205 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2019-03-29 22:18:28.093210 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd
2019-03-29 22:18:28.093510 I | etcdmain: listening for peers on http://localhost:2380
2019-03-29 22:18:28.093595 I | etcdmain: listening for peers on http://localhost:7001
2019-03-29 22:18:28.093636 I | etcdmain: listening for client requests on http://10.12.31.213:2379
2019-03-29 22:18:28.104510 I | etcdserver: name = default
2019-03-29 22:18:28.104544 I | etcdserver: data dir = default.etcd
2019-03-29 22:18:28.104558 I | etcdserver: member dir = default.etcd/member
2019-03-29 22:18:28.104572 I | etcdserver: heartbeat = 100ms
2019-03-29 22:18:28.104586 I | etcdserver: election = 1000ms
2019-03-29 22:18:28.104595 I | etcdserver: snapshot count = 10000
2019-03-29 22:18:28.104628 I | etcdserver: advertise client URLs = http://10.12.31.213:2379
2019-03-29 22:18:28.104637 I | etcdserver: initial advertise peer URLs = http://localhost:2380,http://localhost:7001
2019-03-29 22:18:28.104653 I | etcdserver: initial cluster = default=http://localhost:2380,default=http://localhost:7001
2019-03-29 22:18:28.125879 I | etcdserver: starting member ce2a822cea30bfca in cluster 7e27652122e8b2ae
2019-03-29 22:18:28.125934 I | raft: ce2a822cea30bfca became follower at term 0
2019-03-29 22:18:28.125955 I | raft: newRaft ce2a822cea30bfca [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
2019-03-29 22:18:28.125964 I | raft: ce2a822cea30bfca became follower at term 1
2019-03-29 22:18:28.126235 I | etcdserver: starting server... [version: 2.3.7, cluster version: to_be_decided]
2019-03-29 22:18:28.126750 E | etcdmain: failed to notify systemd for readiness: No socket
2019-03-29 22:18:28.126769 E | etcdmain: forgot to set Type=notify in systemd service file?
2019-03-29 22:18:28.127383 N | etcdserver: added local member ce2a822cea30bfca [http://localhost:2380 http://localhost:7001] to cluster 7e27652122e8b2ae
2019-03-29 22:18:28.526326 I | raft: ce2a822cea30bfca is starting a new election at term 1
2019-03-29 22:18:28.526416 I | raft: ce2a822cea30bfca became candidate at term 2
2019-03-29 22:18:28.526428 I | raft: ce2a822cea30bfca received vote from ce2a822cea30bfca at term 2
2019-03-29 22:18:28.526466 I | raft: ce2a822cea30bfca became leader at term 2
2019-03-29 22:18:28.526484 I | raft: raft.node: ce2a822cea30bfca elected leader ce2a822cea30bfca at term 2
2019-03-29 22:18:28.526807 I | etcdserver: setting up the initial cluster version to 2.3
2019-03-29 22:18:28.531132 N | etcdserver: set the initial cluster version to 2.3
2019-03-29 22:18:28.531229 I | etcdserver: published {Name:default ClientURLs:[http://10.12.31.213:2379]} to cluster 7e27652122e8b2ae
 
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 set foo "bar"
bar
[root@docker-machine ~]# etcdctl --endpoints=10.12.31.213:2379 get foo
bar
 
至此,etcd数据库安装完毕

058、flannel概述(2019-03-27 周三)的更多相关文章

  1. 第 8 章 容器网络 - 058 - flannel 概述

    flannel 概述 flannel 是 CoreOS 开发的容器网络解决方案. flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 h ...

  2. 2019.03.27 读书笔记 关于GC垃圾回收

    在介绍GC前,有必要对.net中CLR管理内存区域做简要介绍: 1. 堆栈:用于分配值类型实例.堆栈主要操作系统管理,而不受垃圾收集器的控制,当值类型实例所在方法结束时,其存储单位自动释放.栈的执行效 ...

  3. 2019.03.27【GDOI2019】模拟 T3

    题目大意 给出$n$, $p$, 求有多少长度为$n$的排列可以被分成三个上升子序列, 数量对$p$取模, 数据范围 $3 \leq n \leq 500$. 思路 首先让我们考虑如果有一个排列,如何 ...

  4. [2019.03.25]Linux中的查找

    TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...

  5. 2019.03.03 - Linux搭建go语言交叉环境

    编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制,并且需要把GOROOT_BOOTSTRAP的路径设置为1.4版本GO的根目录,这样它的bin目录就可以直接使用到1.4版本的GO 搭建go语 ...

  6. Alpha冲刺(4/10)——2019.4.27

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(4/10)--2019.4.27 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  7. 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】

    --------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...

  8. Beta冲刺(6/7)——2019.5.27

    所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺(6/7)--2019.5.27 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万里 ...

  9. [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)

    更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...

  10. 2019/8/27 Test(luogu 五月天模拟赛)

    \(2019/8/27\)大考 \(\color{#ff0808}{\text{初二诀别赛(SAD)}}\) 题目名称 链接 寿司 \(BSOJ5111\) 秀秀的森林 \(BSOJ5125\) 分组 ...

随机推荐

  1. Hdoj 1248.寒冰王座 题解

    Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡 ...

  2. expect交互式安装软件

    公司一些宿主机需要安装软件,吴老师要求写一个安装脚本: 脚本思路:首先要把安装的包拷贝到每台机器上,然后要让每台机器都运行一次安装命令:就想到了应用scp.ssh命令,但这两个命令需要输入对端密码,需 ...

  3. maven插件运行过程中自动执行sql文件

    配置pom.propertis即可 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId> ...

  4. hdu3038How Many Answers Are Wrong(带权并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题解转载自:https://www.cnblogs.com/liyinggang/p/53270 ...

  5. map映照容器

    //map映照容器是由一个键值和一个映照数据组成的,键值与映照数据之间具有一一映照的关系 //map映照容器的键值不允许重复 ,比较函数值对元素 //的键值进行比较,元素的各项数据可通过键值检索出来 ...

  6. poj3349 Snowflake Snow Snowflakes

    吼哇! 关于开散列哈希: 哈希就是把xxx对应到一个数字的东西,可以理解成一个map<xxx, int>(是不是比喻反了) 我们要设计一个函数,这个函数要确保同一个东西能得到相同的函数值( ...

  7. A1136. Delayed Palindrome

    Consider a positive integer N written in standard notation with k+1 digits a​i​​ as a​k​​⋯a​1​​a​0​​ ...

  8. saltstack常用命令

    Salt通过公钥加密和认证minions.想要让minion从master端接受命令,minions的密钥需要被master接受 salt-key -L #列出master上的密钥; salt-key ...

  9. [luogu3834][可持久化线段树 1(主席树)]

    题目链接 思路 裸的主席树.查询的时候,通过相减求出区间内左子树中数的个数a.然后判断要查找的k是否比这个z要大.如果比这个值大,那么就去右子树中查找第k - z大,否则去左子树中查找第k大. 代码 ...

  10. php 4种传值方式

    我们定义page01.php和page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用. 第一种:     使用客户端浏览器的cookie.cookie很 ...