摘要

2015年第一次接触k8s,当时的搭建过程没那么复杂,yum装装,手工配配,没有证书,没有Dashboard,也没有墙…… 。过了3年没碰k8s,如今再来看,发现变化太大了,有了各式的自动部署工具,有了容器,也有了墙…… 。按照新的方式重新搭建了一遍,参考的帖子放在前面,因为别人写的比我好多了,所以这里只总结经验。

1.手工搭建

参考Kubernetes 1.8.x 全手动安装教程 这篇帖子写的很细,一步一步做证书,修改各个配置文件,纯手工部署。但这不是主流的部署方式,适合新手通过手工搭建去深入理解k8s各个组件。

2. Kubeadm

参考Kubeadm 1.9 HA 高可用 集群 本地离线镜像部署 Kubeadm和kubespray的优劣我没仔细研究过。可能是因为玩kolla时用过ansible,所以对kubespray感觉比较亲切,而对Kubeadm就没那么多兴趣了,所以观念可能会有点片面。Kubeadm的优势是,它是官方提供的。所以最新的kubernetes版本发布后,Kubeadm就立马可以支持,而kubespray相对会落后一些,比如现在kubernetes已经发布到v1.10.0,而kubespray只支持到v1.9.5。而Kubeadm的劣势是安装部署还是比kubespray麻烦一点,有一些手工操作,比如安装rpm,生成证书之类的。另外还有一点就是Kubeadm不是真正的微服务架构,比如etcd就不是容器化的。

言归正传,该帖子的详细程度一般般,虽然是18年写的,但内容有点老。搭建的麻烦之处就是去搞kubeadm等rpm包和pause-amd64等镜像。我通过google虚机去搞到了相关的东东,但总的来说还是非常麻烦。尝试了一次,没搞定,就没再仔细研究。

3. Kubespray

参考资料

  1. ubuntu 国内环境部署 kubernetes 1.9.x 集群
  2. kubespray(ansible)自动化安装k8s集群

Kubespray的部署帖子写的比较全一些,镜像都被作者放到了阿里云仓库上,下载镜像也很方便。主要的镜像在roles/download/defaults/main.yml里面,插件在roles/kubernetes-apps/ansible/defaults/main.yml里面,对照着tag去阿里云仓库查找下载 。和帖子不太一样的地方是我装的docker-ce版本有点高,docker-ce-17.12.1.ce-1.el7.centos,而作者提供的kubespray里面要校验docker-engine-selinux(在docker-ce-17.12.1版本中已经没了)。所以改了kubespray/roles/docker/vars/redhat.yml配置文件,去掉了docker_selinux校验。其它的参考帖子,改改Ip什么的。总的来说搭建过程很顺利,从新建虚机装系统到部署完成,大概3个小时左右吧。

最后上个图,mark一下