天天看点

Kubernetes网络部署方案

<a href="http://dockone.io/article/2626">【烧脑式Kubernetes实战训练营】本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理、Kubernetes DNS与服务发现、基于Kubernetes和Jenkins的持续部署方案 、Kubernetes网络部署实践、监控、日志、Kubernetes与云原生应用、在CentOS中部署Kubernetes集群、Kubernetes中的容器设计模式、开发Kubernetes原生应用步骤介绍等。</a>

为啥只说明以下两种方案的部署模式,因为其他网络方案不争气。

Kubernetes网络部署方案

Flannel部署相对来说简单容易、坑少,直接上配置。

flannel.service

记住一定要提前在etcd把你的backend写进去。

HOST-GW的配置:

VXLAN的配置:

然后可以开始你的表演,如果你创建2个pod,互ping一下发现不通,你部署DNS服务,一直报错no route to host(就是Kubernetes那个SVC对应的IP),恭喜你,你下面要做的就是:

因为1.13版本以上Docker好似在iptable写了这么一条策略:

到此为止你起来Flanneld就可以开始你的Kubernetes之旅,当然现在好似还不行记得在/etc/cni/net.d下写一个.conf结尾的文件,当然叫什么名字无所谓。etc:

10-flanneld-cni.conf

然后继续你的表演就可以了。

Kubernetes网络部署方案

其实吧,Calico在Kubernetes网络方案用用的比Flanneld多,Calico懂得玩伸缩,技术也比较牛,在很多物理设备不开启BGP的情况下做了折中,用的IP-IP虽然性能有点损失,在云上被大面积使用。Flanneld的host-gw模式性能虽然不错,但是只能在2层玩下,过了二层路由被重写就GG了。

开始表演IP-IP模式。

第一步创建IPpool,pool就是所有calico分配ip的池子,其实就是Kubernetes的pool,不过Calico分配出来是/26的IP,一下少很多。其实我觉得/26比较符合机器配置的现状至少,不会造成IP的浪费。

calico.env

calico.conf

然后你就可以装逼了,记得把CNI的组件calico-ipam放到/opt/cni/bin。

其实就是在以上的基础上多部署一个RR容器。

然后把这个IP写到etcd里。

然后就是创建一个全局的BGPpeer。

关闭 node-to-node mesh。

重新启动你所有的calico-node。

calicoctl.cfg

开始你的装逼之旅吧。

关于calico-bgp有硬件的自己尝试吧。

原文发布时间为:2017-08-28

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:Kubernetes网络部署方案