使用kubespray在国内安装Kubernetes(1)

目前安装Kubernetes的方法有很多,也很杂乱,加上网络环境也非常复杂,导致大量的小伙伴们在安装Kubernetes的第一步上就卡壳了。我们内部也测试过很多方案,从最早的Kubeadm,之后手动部署,再到现在的Kubespray。我们横跨了Kubernetes1.6到现在的1.9。就目前而言,kubespray的功能,可修改性,稳定性都让我们十分满意。所以今天就来安利一波。

目前安装方式对比

目前安装Kubernetes的方式,主要是kubeadmkopsRancher ,手动部署Kubespray。我们首先对比一下他们。

kubeadm

官方推荐方案,也在大力发展。小问题比较多,扩展还是需要配合其它方案一起做。高可用上面还是需要自己花一些精力 如果只是玩玩,还是非常推荐的,但是想要正式环境使用,我还是推荐大家三思。

由于kubeadm更像是一套完整的脚本封装,所以想要扩展它,还是需要配合其它的方案一起做。升级之类的,可以参考官方的升级指南,还是比较容易的。

目前支持的操作系统主要有:Ubuntu 16.04+/Debian 9/CentOS 7/RHEL 7/Fedora/HypriotOS/Container Linux 对于云平台的支持一般,还是推荐大家在安装完毕后,手动扩展吧。

kops

kops是非常早就存在的一个项目,也是目前最靠谱的部署方案,但是由于与各云平台整合度非常高,所以也不是很推荐。当然如果你在国外,使用GCE/DigitalOcean/AWS的话,我还是非常推荐的。国内就算了。

Rancher

如果说kuernetes类似于IaaS+,那么Rancher就是标准的PaaS,如果你愿意按照Rancher的项目结构思路走,如果你团队不大,我还是比较推荐的。 目前Rancher正在准备升级2.0,我推荐大家稍微等待一下,然后直接拥抱2.0吧。至于1.x版本,我推荐大家放弃吧。(也就多等各十天半个月什么的) 至于部署,目前还不清楚Rancher什么时候会集成(貌似已经有势头了),具体方案还不清楚。

手动部署

手动部署完全看喜好,推荐大家都尝试一遍,成功与不成功不要紧,最主要的是了解一下Kubernetes的组件。会为你调试其它方案有很好的帮助。 我本人不是专业运维,所以也没有封装比较完善的脚本。但是理论上,如果对Kubernetes足够了解,完全可以把他创建成与kops 或者 kubespray 一样的方案。 如果你是折腾党,推荐试一试,就是之后升级之类的可能麻烦一些。

kubespray

本人最推荐的方案,有kops的集成度(还差一些,但是该有的都有了),升级方便。只要对它不爽,随时可以fork一份,按照自己意愿进行修改。

kubespray是一个基于Ansible的部署方案,所以部署过程大家都能看得懂(如果你看不懂,请问你们公司还需要人吗?我这个小研发最近打算转运维)

操作系统支持绝大部分基于systemd的系统,什么Container Linux/Debian/Ubuntu/CentOS/RHEL/Fedora/CentOS Atomic/openSUSE 支持绝大部分的云平台(阿里云,腾讯云什么的,目前还不支持。),也支持OpenStackvSphere等虚拟化方案。所以自建机房什么的也完全不用担心啦。

kubespray也为我们准备好了高可用方案,支持绝大部分网络插件,DNS也支持很多类型,你可以根据自己的需要选择。

文档上,目前也很完整。国内如果想要部署,仅仅需要写一下部署配置,声明一些镜像地址(替换从国外拉镜像的尴尬)。就可以愉快的一键执行了。

总结

我们对比了一下目前的主流方案,可以发现,目前灵活度,集成度上,kubespray做的都非常好。所以这也就是为什么我们选择使用kubespray的原因了。也非常推荐大家试一试。当然还有很多人写过不同的部署方案,大家都可以参考。

原文地址:https://www.cnblogs.com/hzcya1995/p/13317349.html