手把手教你构建 Kubernetes 1.8 + Flannel 网络(一)
一、环境说明
操作系统:CentOS7
Kubernetes版本:v1.8.4
Docker版本:v17.06-ce
Flannel 版本: flannel-v0.9.1
二、Ntp 服务器配置
时间同步很重要


三、Flannel概述
Flannel 是 CoreOS 团队针对 Kubernetes 设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker 容器都具有全集群唯一的虚拟IP地址。但在默认的Docker配置中,每个节点上的 Docker 服务会分别负责所在节点容器的 IP 分配。这样导致的一个问题是,不同节点上容器可能获得相同的内外 IP 地址。并使这些容器之间能够之间通过 IP 地址相互找到,也就是相互 ping 通。
Flannel 的设计目的就是为集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得“同属一个内网”且”不重复的”IP 地址,并让属于不同节点上的容器能够直接通过内网 IP 通信。
Flannel实质上是一种“覆盖网络(overlay network)”,也就是将 TCP 数据包装在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VxLAN、AWS VPC和GCE路由等数据转发方式。
四、安装docker
1.设置 yum 仓库

2.执行安装

3.设置开机启动

4.添加 Docker Hub 国内镜像
如果没有此文件,则新建一个

5.重启 docker

6.设置 hosts 及 hostname

五、给 docker 配置 Flannel 网络
1.Master 节点 etcd 配置
Etcd 安装配置 (这里做的单节点 ETCD 只在 Master 节点安装)


etcd 创建 Flannel 网络

2.安装 flannel 软件并设置 docker 参数
(其他 node 节点 flannel 网络也照着这样配置)
使用软件包: flannel-v0.9.1.tar.gz (分享完会附带资料)

最后重启 flannel 和 docker

成功状态

三个节点 docker 网络都照这样配置
六、Kubernetes 集群配置
使用软件包:
kubernetes-v1.8.4.tar.gz
#软件包分发到各个节点上
1.Master 节点配置:


2.Node1 节点上配置

3.Node2 节点上配置

4.查看集群状态:
[root@node1 ~]# kubectl get node

5.集群管理
kubelet 在创建 pod 时会先下载一个 pause 镜像,这个镜像用于容器基础网络管理
每个 node 节点都要执行该操作(镜像如果下载不下来,我们全部分享完,会把完整资料也分享给大家):

导入镜像:
docker load -i pause-amd64.tar.gz
非常重要: 防火墙
iptables -P FORWARD ACCEPT
iptables-save
每个节点都要执行,否则通讯会有问题
测试集群网络是否正常通讯



测试每个节点是否能 ping 通 容器 ip,能 ping 通说明正常
6.服务发现 DNS
kubedns-deployment.yaml kubedns-svc.yaml
两个文件本文档会附带(如果dns相关镜像下载不下来,分享完会带示例)

三个镜像导入然后再创建即可,每个节点上都要导入


创建 nginx 服务进行测试




7.kubernetes-dashboard

节点上导入该镜像







未完待续.......
手把手教你构建 Kubernetes 1.8 + Flannel 网络(一)的更多相关文章
- 手把手教你构建 C 语言编译器
http://lotabout.me/2015/write-a-C-interpreter-1/
- 《手把手教你构建自己的 Linux 系统》学习笔记(10)
目录 /etc/fstab 文件的作用是什么? Linux 内核的图形化启动是怎么回事? Linux 系统中的文件名是否以大小写来进行区别? 「GRUB 中无法找到硬盘」怎么解决? 「GRUB 及配置 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(9)
目录 autoreconf 命令的作用是什么? aclocal automake -a autoconf 一条命令搞完三面三步 既然有其他的「编译控制软件」为何还是使用 make 来进行编译控制? M ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(8)
目录 Binutils 软件包有什么用? make -k 的作用是什么? man-pages 里有几种文档?分别表示什么意思? 如何查询指定目录的 man-pages ? 如何使用 make 命令的同 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(7)
目录 tee 命令的缺陷是什么?如何解决这个缺陷? /etc/ld.so.conf 文件的作用是什么? 动态链接和静态链接有什么不同? 动态编译 静态编译 共享库为什么会有版本?共享库的版本升级原理是 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(6)
目录 /dev 目录是干什么的? /proc 和 /sys 目录是干什么的? udev 这个软件是干什么用的? 目录映射是临时性的,还是永久性的? 命令行里大括号 "{}" 的作用 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(5)
交叉编译是什么? 交叉编译就是在一个系统上,编译生成另外一个系统运行的程序文件. 「硬件体系结构」和「操作系统」的关系是什么? 硬件体系结构也可以称为架构,主要是通过 CPU 的指令集来进行区分的,操 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(4)
汇编链接器(Binutils) 这是一个软件包,这个软件包其实是一个工具集,里面含有了大量的用于汇编程序活着读取二进制文件相关的程序. CC 它是一条命令的别名,这条命令的作用是使用 GCC 的 C ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(3)
需要注意的是,制作操作系统权限全程都要用 root pushd 和 popd 为了方便目录管理,所以出现了这种两个命令,他们的原理就是利用堆栈来实现目录管理. 这两个命令,pushd 负责将指定的目录 ...
随机推荐
- Ubuntu安装微信开发者工具
参考教程:https://ruby-china.org/topics/30339 1.下载nw sdk $ wget -c http://dl.nwjs.io/v0.15.3/nwjs-sdk-v0. ...
- Android查缺补漏--Service和IntentService
Service的运行不依赖界面,即使程序被切换到后台,Service仍然能够保持正常运行.当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行. Service 分为启动状态和绑定 ...
- 微信小程序教学第四章第一节(含视频):小程序中级实战教程:详情-页面制作
详情 - 页面制作 本文配套视频地址: https://v.qq.com/x/page/o0555o20xjd.html 开始前请把 ch4-1 分支中的 code/ 目录导入微信开发工具 这一章节中 ...
- 封装一个button上带图片的,图片在上,文字在下的按钮
#import "CJShoppingDetailButton.h" @implementation CJShoppingDetailButton - (void)layoutSu ...
- CSS3渐变相关
背景渐变 background: -moz-linear-gradient( top,#f24652,#da2c3c); background: -o-linear-gradient(top,#f24 ...
- 【java】TreeSet、Comparable、Comparator、内部类、匿名类
package com.tn.treeSet; public class Student { private String name; private int age; public Student( ...
- 关于llvm kaleidoscope: 记一次Debug血泪之路
简而言之,慎(bu)用(yong)全局变量! 这次debug基本上花了我一周的时间,我基本上是晚上9点30下自习回然后调试到11点30,如此反复一周直到今天周五终于解决了,,以前都听说前辈们 说尽量不 ...
- bzoj 4569: [Scoi2016]萌萌哒
Description 一个长度为n的大数,用S1S2S3...Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条 件表示为四个数,l1,r1,l2,r2,即两个长度相同的 ...
- useradd 命令详解
useradd 作用: 用于Linux中创建的新的系统用户, useradd 可用来建立用户账号, 账号建好之后,再用passwd 设定账号的密码, 可用userdel 删除账号. 使用useradd ...
- springBoot系列教程03:redis的集成及使用
1.为了高可用,先安装redis集群 参考我的另一篇文章 http://www.cnblogs.com/xiaochangwei/p/7993065.html 2.POM中引入redis <de ...