k8s作为一个docker 的编排工具,从众多的编排系统中脱颖而出,我个人觉得除了拥有一个实例雄厚的“爹”,更多的是其概念上的重大突破。使其调度灵活应用,接着微服务趋势的东风,必然成为科技公司解决现有生产困窘的利器。
鉴于多年的工作经验,我想逐步总结二进制部署的方式以及各个组件的使用方法和技巧。
本博文作为引文,我也想说说我自己理解的一些废话。
1 为什么要使用二进制部署方式。
- k8s有很多的部署工具,k8s官网上也有罗列,但是我个人认为如果没有做过二进制部署很难理解各个程序组件存在的意义,出现问题也很难快速定位,甚至可能存在的风险也会认识不足(比如证书过期)
- k8s只做了容器的调度问题,但是网络问题同样是大规模集群的核心问题,一般的编排工具比较适合与小规模的平台,但是一旦规模上去,必然对底层网络进行软件硬件有机的合理规划。只有二进制部署才能灵活的调整参数,不受部署系统的限制。
2 网络组件的选择
- 网络组件的选择可能是我们部署大规模集群的首要考虑问题,因为这里不只是包含了软件部分,而且涉及到网络和机柜综合布线与故障域的问题。特别是当我们使用到了ceph等后端分布式存储的时候,综合的考虑尤为重要。
- 在这里,如果我们集群规模比价大,我建议使用calico作为我们底层的网络解决方案。因为这种方案能够比较好的解决网络性能损失。
3 证书问题
- k8s是通过ssl证书进行身份的鉴别。极大的保证了集群的安全,因此部署的时候一定要通过证书认证,否则后续可能会有极大的安全隐患。
- 证书的有效期默认是10年,我们也要根据我们实际情况进行调整,否则证书一但要过期会增加我们大量的工作量,当然ca证书要妥善保存。
废话不多说,从下面的文章开始进行实操阶段,重点说明,我是k8s+calico+ipvs部署的,不同的组件参数是不一样的。