容器作为一种先进的虚拟化技术,是云原生时代软件开发和运维不可或缺的部分。k8s是目前最流行的容器编排管理工具,但很多企业在拥抱k8s的过程中,遇到了难题。
今天就来聊聊上K8s,研发团队如何从容一点?
关于容器技术
容器技术呱呱坠地到如今,在国内经历了如下3个阶段:
容器技术带来的价值,通过它的广泛使用已经不言而喻,现在大致介绍容器技术的现状和趋势。
K8s一直以来被当做容器编排工具(Container Operation, CO),而这些年的发展,K8s已经成了云原生领域事实的操作系统(Operation System, OS)。
难以驾驭的K8s
K8s功能固然强大,但同时从K8s目前的定位——操作系统,就能看出它最大的特征:复杂,这就会衍生一系列问题:
K8s yaml的配置一部分是开发关注的,一部分是运维关注的,如何分工协作?
ConfigMap/Secret 不支持版本控制,参数多时配置起来很麻烦;
集群如何给外部暴露端口?
如何做热更新?
多K8s集群如何管理?
K8s集群本身如何备份和恢复?
如何对K8s集群进行升级而不影响业务?
K8s集群如何做资源规划?
K8s是所有人的良药吗?
K8s很好,然而用Ta很困难,是不是让人又爱又恨?怎么办?
建议你冷静下来,仔细分析一下更重要的事情——K8s是否适合你、你的项目、你的团队?
建议考虑如下内容:
如果你的答案是你不需要K8s,那么恭喜你,你可以中止阅读了,你花费了10分钟不到的时间,得到了一个有价值的答案。
如果你的答案是:你需要K8s,请继续阅读,也许对你有些许帮助。上面列的困难只是战术上的困难,是有办法解决的。
我的团队该如何上K8s?
关于how的问题,有大有小:大如我该如何度过这一生,小则有我该如何学习10以内的加法。而团队该如何上K8s,这就是一个宏大的问题。一般而言,大问题可以拆分为小问题,逐个求解得到答案。
言归正传,团队如何上K8s,从大面上,答案包含2点,二者缺一不可:
渐进式上K8s
人员分工 + 第三方产品解决复杂性
渐进式上K8s
取得成功之后,再扩展至生产环境、其他项目、其他团队。这样的方式,有利于团队积累对K8s的自信心。取得一定的广度成功的同时,在深度上也可以做一定的探索。比如,使用K8s配套的测试工具、运维工具,甚至采用一些开源项目的CRD,比如Open Kruise。甚至编写自己公司特有的CRD。
人员分工 + 封装
人类解决复杂性有2个非常重要的手段:分工、封装。在IT领域,这两个手段的例子俯拾皆是。具体到上K8s体现为:
人员分工是指不需要整个团队的人都懂K8s,只需要特定的一两个人懂K8s,研发人员、测试人员只需配合相关的工作,由这一两个人来编写Dockerfile、K8s yaml,也可以由这一两个人写好脚本,开发人员和测试人员直接调用脚本,传递合适参数。
封装。有如5种方式封装,第1条是穷人专用,第5条是土豪专用,第2、3、4条是经济适用条款。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。