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. flask简单登录注册

    效果图 发布问答页面需要登录才能访问,没有登录会跳转到登录页面 模板继承,正则验证,数据库迁移,md5加密 mysql 5.7 登录页面 登录后的发布问答页面,右上角会显示用户名和注销 项目代码:码云

  2. Nagios 配置自动发邮件功能

    安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...

  3. BZOJ 5097: [Lydsy1711月赛]实时导航(最短路 + bitset)

    题意 \(n​\) 个点的有向图,边权 \(\in \{1, 2, 3, 4\}​\) ,\(m​\) 次修改边权/加边/删边,\(q​\) 次询问:以 \(s_i​\) 为起点,输出它到其他点的最短 ...

  4. 用c#查询各快递物流信息

    前面介绍过<用快递100接口查询各快递物流信息>,里面用的是API接口,但有些快递不支持这种方式,本文介绍的HtmlAPI支持所有快递公司. 支持包括EMS.邮政.顺丰和申通在内的所有公司 ...

  5. 不能靠眼睛之 KEIL 中失效代码灰暗特性

    @2019-02-15 [问题描述] 使用 KEIL(带灰暗特性版本) 查看头文件代码时,其中有依据不同宏定义对应不同执行语句代码部分,依据灰暗特性呈现生效与失效代码,靠眼睛反应就是灰暗呈现为失效代码 ...

  6. 【转】非常实用的高频PCB电路设计70问

    1.如何选择PCB 板材? 选择PCB 板材必须在满足设计需求和可量产性及成本中间取得平衡点.设计需求包含电气和机构这两部分.通常在设计非常高速的 PCB 板子(大于 GHz 的频率)时这材质问题会比 ...

  7. centos7/rhel7下安装redis4.0集群

    相关介绍:Redis从3.0版本开始支持集群! 集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群. 每个节点需要开启配置文件中的cluster-enabled yes,让Redis ...

  8. RHEL7下用本地光盘或镜像iso文件做yum源

    应用场境:Redhat 系统想要直接在线通过yum的条件时需要注册,一般用户都是非注册的,这个时候如果要想通过yum安装新软件,我们可以通过将安装盘或者镜像iso文件设置为yum源的方式来进行. 测试 ...

  9. Ubuntu18.04下给Jupyter-NoteBook设置默认工作路径(附Win设置)

    上一篇Jupyter的文章:https://www.cnblogs.com/dotnetcrazy/p/9201976.html Linux 生成配置文件:jupyter-notebook --gen ...

  10. 51Nod--1076 2条不相交的路径(强连通分量)

    电波 #include<bits/stdc++.h> using namespace std; #define LL long long #define maxn 30000 vector ...