文档章节

flannel实战

China_OS
 China_OS
发布于 08/15 16:28
字数 948
阅读 17
收藏 0

        docker swarm mode的出现是个里程碑,官方原生的编排调度看起来都成雏形了,但是swarm mode和容器外部系统的对接、网络性能始终不尽人意,swarm mode下各种开源周边不能使用,感觉swarm mode自成一个体系,网络方面上篇调研了calico,本篇调研一下flannel,总体感觉大家都是在向K8S靠拢,docker原生这也是凉凉嘛.....

软件信息

软件 版本
OS Ubuntu 16.04.3 LTS
Docker 18.03.0-ce
Etcd 3.3.9
Flannel 0.10.0

主机信息

ubuntu16.04-1

172.31.68.241 workload-A docker、etcd、flannel
ubuntu16.04-2 172.31.68.242 workload-B docker、flannel
ubuntu16.04-3 172.31.68.243 workload-C docker、flannel

工作目录

    /opt/programs:各种软件的下载均在该目录下

docker安装

    下载

wget 'https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.03.0~ce-0~ubuntu_amd64.deb'

    安装

dpkg -i docker-ce_18.03.0~ce-0~ubuntu_amd64.deb

    配置

        /etc/docker/daemon.json    

{
  "registry-mirrors": ["http://aa2fd190.m.daocloud.io"],
  "insecure-registries":["http://172.31.68.241"],
  "dns": ["202.96.209.5","202.96.209.133"],
  "experimental": true
}

    启动

systemctl daemon-reload
systemctl restart docker.service

   启动脚本

        /lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

    注意:以上步骤在三台机器都需要执行

etcd安装

    下载

wget 'https://github-production-release-asset-2e65be.s3.amazonaws.com/11225014/7c787e4c-8f2b-11e8-8a29-4db755239b18?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180813%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180813T090430Z&X-Amz-Expires=300&X-Amz-Signature=dc354d85304b135c99c4d0b606fa07bd75eaaa2fd46b19d43554d9112a4d83d8&X-Amz-SignedHeaders=host&actor_id=12913767&response-content-disposition=attachment%3B%20filename%3Detcd-v3.3.9-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream'

    安装

tar zxvf etcd-v3.3.9-linux-amd64.tar.gz
mv etcd-v3.3.9-linux-amd64 etcd_3.3.9

    配置启动脚本

        /etc/systemd/system/etcd.service

[Unit]
Description=etcd
Documentation=https://github.com/coreos/etcd

[Service]
Type=notify
Restart=always
RestartSec=5s
LimitNOFILE=40000
TimeoutStartSec=0 

ExecStart=/opt/programs/etcd_3.3.9/etcd --name ubuntu16.04-1 \
   --data-dir /var/lib/etcd \
   --listen-client-urls http://172.31.68.241:2379 \
   --listen-peer-urls http://172.31.68.241:2380 \
   --advertise-client-urls http://172.31.68.241:2379 \
   --initial-advertise-peer-urls http://172.31.68.241:2380

[Install]
WantedBy=multi-user.target

    启动

systemctl daemon-reload
systemctl start etcd.service

    验证

etcdctl --endpoints http://172.31.68.241:2379  cluster-health

    注意:以上操作只需要在ubuntu16.04-1上执行

flannel安装

    下载

wget 'https://github-production-release-asset-2e65be.s3.amazonaws.com/21704134/596e76e2-002c-11e8-9359-36689058e7af?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180815%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180815T052949Z&X-Amz-Expires=300&X-Amz-Signature=5b4fda3ddd09110a2a9d17cd65d1af2adef7a608888fc95a2692623768b2daad&X-Amz-SignedHeaders=host&actor_id=12913767&response-content-disposition=attachment%3B%20filename%3Dflannel-v0.10.0-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream'

    安装

mkdir /opt/programs/flannel_0.10.0
tar zxvf flannel-v0.10.0-linux-amd64.tar.gz -C /opt/programs/flannel_0.10.0

    etcd配置网段

etcdctl --endpoints http://172.31.68.241:2379 set /flannel/network/config '{"Network":"192.168.0.0/16","Backend":{"Type":"vxlan"}}'

    启动flannel

flanneld -etcd-endpoints=http://172.31.68.241:2379 -ip-masq=true -etcd-prefix=/flannel/network

    配置启动脚本

        /lib/systemd/system/flannel.service

[Unit]
Description=coreos flannel
Documentation=https://my.oschina.net/guol/blog/1928408
After=docker.service


[Service]
TimeoutSec=0
ExecStart=/opt/programs/flannel_0.10.0/flanneld -etcd-endpoints=http://172.31.68.241:2379 -ip-masq=true -etcd-prefix=/flannel/network
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 

[Install]
WantedBy=multi-user.target

    生产docker配置

mk-docker-opts.sh

        ps:生成的文件在/run/docker_opts.env

    调整docker参数

        /lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
EnvironmentFile=/run/docker_opts.env
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock $DOCKER_OPTS
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

    重启docker

systemctl daemon-reload
systemctl start docker.service

    查看网卡

    注意:以上部署需要在三台机器上都执行,上例是以ubuntu16.04-1为例进行演示,"etcd配置网段"只需要执行一次即可

Etcd数据验证

etcdctl --endpoints http://172.31.68.241:2379 ls /flannel/network/subnets/

启动测试容器

    分别在三台机器上启动一个容器实例

docker run  --name workload-A -ti 172.31.68.241/library/xenial3
docker run  --name workload-B -ti 172.31.68.241/library/xenial3
docker run  --name workload-C -ti 172.31.68.241/library/xenial3

联通测试

    容器间通讯

        workload-A --> workload-C

    容器宿主机通讯

        workload-C  --> ubuntu16.04-1

    主机容器通讯

        ubuntu16.04-3 --> workload-B

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: calicoctl
下一篇: Ceph L快速安装
China_OS
粉丝 414
博文 453
码字总数 511906
作品 0
静安
技术主管
私信 提问
CentOS7环境部署kubenetes1.12版本五部曲之二:创建master节点

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/83692606 本文是《CentOS7环境部署kubenetes1.12版本五部曲》系列的第二篇,上篇文章我们实...

博陵精骑
11/04
0
0
实战4节点Centos7.3 安装Kubernetes集群

Kubernetes集群安装部署 Kubernetes集群组件: -Master节点   - etcd 一个高可用的K/V键值对存储和服务发现系统   - kube-apiserver 提供kubernetes集群的API调用   - kube-controller...

OpenStack2015
01/12
0
0
一篇文章带你了解Flannel

Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从Flannel的...

劲风online
2015/12/28
220
0
docker flannel网络部署和路由走向分析

1.flannel介绍 flannel是coreos开发的容器网络解决方案。flannel为每个host分配一个subnet,容器从此subnet中分配ip。这些ip可以在host间路由,容器间无需nat和port mapping就可以跨主机通讯...

am2012
08/07
0
0
22、《每天5分钟玩转Docker容器技术》学习--Flannel Network内部结构

一、环境介绍 二、环境搭建 环境搭建这里就不再重复了,请大家参考上一篇文章! http://blog.51cto.com/hostman/2103503 这里我们从配置flannel信息到数据库中开始 创建一个文件flannel-con...

hostman6
04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
4
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
3
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部