[运维网版主原创书籍]kubernetes-v1.8.4 Flannel 网络一步一步构建
本帖最后由 eagle1032231418 于 2017-12-25 10:31 编辑Kubernetes 1.8 + Flannel 网络一步一步构建
环境说明:
操作系统:CentOS7
Kubernetes版本:v1.8.4
Docker版本:v17.06-ceFlannel 版本: flannel-v0.9.1
Ntp 服务器配置: #时间同步很重要#yum install ntp-server -y# systemctl start ntpd && systemctl enable ntpd# yum installntpdate-y #重要:时间同步 (每个节点都要操作否则会有意想不到的惊喜)# echo “*/5 * * * * /usr/sbin/ntpdate192.168.31.221 > /dev/null 2>&1 &”>>/etc/crontab# /usr/sbin/ntpdate 192.168.31.221 #手动同步一次
角色IP组件
etcd
Maser192.168.31.221kube-apiserver
kube-controller-manager
kube-scheduler
Flannel
kubelet
Node1192.168.31.222kube-proxy
docker
Flannel
kubelet
Node2192.168.31.223kube-proxy
docker
Flannel
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 仓库tee /etc/yum.repos.d/docker.repo <<-'EOF'name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF 2.执行安装#yum -y install docker-engine 3.设置开机启动 # systemctlstart docker&& systemctl enable docker 4.添加Docker Hub国内镜像# 如果没有此文件,则新建一个vi /etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]} 5.重启docker#systemctlrestart docker #重启docker 6.设置hosts及hostname#vi /etc/hosts192.168.31.221 node1 node1.example.com192.168.31.222 node2 node2.example.com192.168.31.223 node3 node3.example.com # hostnamectlset-hostname node1.example.com# hostnamectlset-hostname node2.example.com# hostnamectlset-hostname node3.example.com
二.给docker 配置 Flannel网络 1.Master 节点etcd配置 Etcd 安装配置 (这里做的单节点ETCD只在Master 节点安装) #yum installetcd -y # vi /etc/default/etcdETCD_DATA_DIR="/var/lib/etcd/default"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379# sed -i 's/localhost/0.0.0.0/g'/etc/etcd/etcd.conf# systemctlstartetcd&& systemctl enable etcdetcd 创建 Flannel网络 # etcdctl --endpoints http://192.168.31.221:2379\set /coreos.com/network/config '{"NetWork":"10.0.0.0/16"}' 2.安装 flannel 软件并设置docker参数(其他node节点flannel网络也照着这样配置)使用软件包: flannel-v0.9.1.tar.gz (本文档会附带)# tar -zxvfflannel-v0.9.1.tar.gz# cd flannel-v0.9.1# cp flanneldmk-docker-opts.sh/usr/local/bin/# cd conf/# cp *.service/usr/lib/systemd/system #覆盖docker 的启动脚本# cp flanneld/etc/sysconfig/# vi /etc/sysconfig/flanneld #修改 自己的etcd 服务器地址 # Flanneld configuration options# etcd url location.Point this to the server where etcd runsFLANNEL_ETCD_ENDPOINTS="http://192.168.31.221:2379"# etcd config key.This is the configuration key that flannel queries# For address range assignmentFLANNEL_ETCD_KEY="/coreos.com/network"FLANNEL_OPTIONS="--etcd-endpoints=http://192.168.31.221:2379 --ip-masq=true"# Any additional options that you want to pass#FLANNEL_OPTIONS="" 最后重启 flannel 和 dockersystemctl daemon-reloadsystemctl start flanneld && systemctl enable flanneld systemctl restart docker成功状态#ifconfig docker0 |grepinet && ifconfig flannel0 |grep inet
更加详尽的文档,请看附件
最新更新:镜像仓库 UI配置
附带,文档使用的所有容器镜像,及yaml 文件,文档是各方学习,总结出来的,有问题可以,反馈给我,谢谢
抢个沙发 下来学习学习。 学习一下 学习一下。 学习一下看着挺详细的 支持 好东西。必须顶 正学习中,正需要,谢谢 看了文档,在做集群管理的时候有点疑问,busybox.yaml是不是在每个节点上都要执行,还是只在master上执行?做服务发现dns的时候,kubedns-svc.yaml是只在master上执行吗?我这样做了以后,查看dns的状态,找不到其他节点的ip地址是什么问题? awsscx 发表于 2017-12-18 16:11
看了文档,在做集群管理的时候有点疑问,busybox.yaml是不是在每个节点上都要执行,还是只在master上执行? ...
已经协助,处理
6666666666 好东西 多谢楼主分享 ``````````````` 最近很火ks,点个赞,我也在git上看到中文了,支持一下 好牛逼啊学习了 都买了 为什么还不能下载啊骗人么 继续学习 liuyu 发表于 2018-1-5 21:46
都买了 为什么还不能下载啊骗人么
你买了下载附件,里面有百度网盘地址和密码
页:
[1]
2