learn-tech/专栏/Kubernetes入门实战课/结束语是终点,更是起点.md
2024-10-16 06:37:41 +08:00

11 KiB
Raw Blame History

                        因收到Google相关通知网站将会择期关闭。相关通知内容
                        
                        
                        结束语 是终点,更是起点
                        你好我是Chrono。

经过近三个月的刻苦努力我们的Kubernetes学习之旅在今天就抵达“终点站”了。

三个月的时间,说长不长,说短不短,所谓“一期一会”,我非常珍惜与你共同度过的这段时间,同时也感谢你对专栏的支持和热情留言,正是由于我们彼此的帮助和鼓励,才让这段光阴变得更有意义、更加精彩。

分别之际,我再来聊聊我自己的学习经历和建议吧,就当做是一个简单的“复盘”。

我的Kubernetes学习经验

其实在“开篇词”里已经说过了我学习Kubernetes的过程不过作为“前车之鉴”我觉得有必要再回顾一下相信也有不少同学对我是如何学习Kubernetes会比较感兴趣而且这段经历也有一点参考的价值。

首先要说的是我属于研发出身技术背景是C/C++/Nginx所以在学习的过程中就会下意识地从这个角度去筛选知识点偏重应用的开发和部署对系统的安装、运维、管理则关注的不是太多。

这里我也给你提个醒学Kubernetes最好是结合自己的实际情况定个“小目标”比如“我要学会在Kubernetes里开发云原生应用”“我要运维Kubernetes的监控系统”“我要搭建出高可用的Kubernetes生产系统”等等而我当初的目标就是“要搞明白Nginx Ingress Controller的用法”。

有了这样比较明确的目标你就会有方向、有重点地去研究Kubernetes方便检查自己的学习进度也更容易集中精力“钻进去”否则漫无目的学习就很容易迷失在Kubernetes的知识海洋里图片来源也很难构建起完整的知识体系。

和大多数人一样我一开始学Kubernetes也是困难重重主要原因还是Kubernetes是一个全新的系统上来就要面对一大堆“不知所云”的概念Pod、ConfigMap、Deployment等等没有任何以往的经验可以借鉴完全要从零开始。

初学者想要翻越这个“高山”必须要下苦功夫、花大力气,我个人感觉这个过程没有捷径可走,必须反复阅读思考,再通过做实验来加深印象。只要度过了这个“危险期”,理解了底层知识,打好了基础,后面的学习就会变得轻松一些了。

说到做实验我认为这也是学习Kubernetes的一个非常重要的手段。毕竟Kubernetes是一个“操作系统”如果仅仅是看文字资料“纸上谈兵”不真正上手演练是很难弄清楚它的工作原理和运行机制的。

最初我用的就是minikube简单方便功能也很齐全对于Kubernetes入门来说非常合适可以快速上手。

不过因为minikube是基于Docker虚拟的在节点和网络等方面离真实环境还是有一些差距所以我也建议你在对Kubernetes有了比较深入的了解之后还是应该改换成kubeadm这样才能够更透彻地学习研究Kubernetes。

在学习的过程中我还有两个“最佳实践”,一个是勤记笔记,另一个是画思维导图。

俗话说“好记性不如烂笔头”,资料看得太多,大脑不可能全记住,我们就要及时把阅读时的思考和体会写下来。

不过你也不必强求笔记完整详细,短短一两句话、简单的几个链接都是有价值的,等到笔记积累到一定的数量,就可以再花一些时间做个归纳和浓缩,这个时候就会用到思维导图。

我想你应该对思维导图很熟悉吧,它的树状发散的形式很好地符合了人的自然思维模式,可以想到哪儿就写到哪儿,不需要什么心理负担,而且我们还可以给条目加各种小标记,条目之间还可以互相引用,用视觉效果来强化学习。

把碎片化的笔记和有结构的思维导图结合起来,我们就能更顺畅地整理思路、总结经验,把零散的想法、概念分类合并,逐渐就能掌握系统、全面的知识了。

作为示范,我把刚才说的这些也画成了思维导图。你看,有了图形化、可视化,知识点学习吸收起来是不是就更容易一些呢。

今后要怎么学Kubernetes

课程虽然马上要结束了但在“终点站”之外Kubernetes的世界才刚刚展现在你的面前。这个世界是如此的广阔宏大我们的Kubernetes课程可以说是只走出了“万里长征的第一步”今后的道路将要去向何处就要由你自己来把握了。

接下来我就来说说四个可能的方向吧你可以把它们看成是学习Kubernetes的“攻略指引”帮助你走出属于自己的路。

第一个是阅读Kubernetes官网上的文档。

Kubernetes官网https://kubernetes.io/zh-cn/docs/home/)里的资料非常丰富详细,包括入门介绍、安装指导、基本概念、应用教程、运维任务、参考手册等等

当然了官网文档不是完全面向初学者的不像我们的课程那样“循序渐进”写得也不都是那么通俗易懂要有一定的基础才能够看得下去。但它的优势就是全面、权威覆盖了Kubernetes的每一个特性你对Kubernetes有任何的疑惑和不解都能够在这些文档里找到答案。

不过官网文档太多太杂也对我们的学习造成了困难,想要去按部就班地查找知识点会很麻烦,这个时候就要善用它的搜索功能了,用关键字来快速定位文章、页面,节约我们的时间和精力。

第二个学习方向是看Kubernetes的博客。

官网上的文档只是描述了Kubernetes的现状而没有讲它的历史想要知道Kubernetes里的这些API对象是怎么设计出来的怎么一步步发展到今天的这个样子就要去看它的技术博客文章了。

这里我推荐你去阅读英文博客(https://kubernetes.io/blog/虽然中文官网也有博客但翻译的不全比较少而英文博客从2015年开始每个重要特性的变更几乎都有文章来介绍。而且博客和文档不同它更注重面对普通用户阐述的是技术决策的思考过程也就更容易理解一些

如果条件允许的话我建议你从2015年的第一篇博客开始看起最好每篇都简略地过一遍。把这些博客全看完“以史为鉴”你就能够理解Kubernetes的演变过程了也会对Kubernetes的现状有更深刻的认识。

第三个是上CNCF网站https://www.cncf.io/看它的全景图在里面找自己感兴趣的项目然后在Kubernetes环境里部署应用起来在实践中学习Kubernetes

CNCF全景图里的项目非常多其中由它托管的项目又分成毕业Graduated项目、孵化Incubating项目和沙盒Sandbox项目。

其实这些项目只要进入了CNCF质量都是比较高的区别只在于成熟度的不同而已。毕业项目是最成熟的已经被业界广泛承认和采用可用于生产环境孵化项目应用程度还不太广贡献者也不是太多只有少数生产实践而沙盒项目则属于实验性质还没有经过充分的测试验证。

这里我们也可以来简单了解下毕业项目和孵化项目,课后你可以挑自己感兴趣的深入研究。

这张图是目前CNCF里全部的16个毕业项目

这里面我们已经全面学习了Kubernetes简单介绍过containerd和Prometheus其他我个人比较感兴趣的还有Harbor、Helm、Vitess。

CNCF的孵化项目目前有39个比起毕业项目它们的知名度要略差一些这个截图列出了一部分其中我比较感兴趣的有gRPC、SPIRE、NATS、OpenTelemetry

第四个学习方向要量力而行是参加Kubernetes的培训并且通过认证https://kubernetes.io/zh-cn/training/

和很多其他的计算机技术一样Kubernetes也设立了官方的培训课程和资质认证在国内大家都比较了解的应该就是CKACertified Kubernetes Administrator另外还有一个更高级的是CKSCertified Kubernetes Security Specialist

CKA主要考查的是对Kubernetes的概念理解和集群管理维护能力重点是动手操作使用kubectl来解决各种实际环境里可能遇到的问题。它的难度并不太高但考点覆盖面广而且考试时间长达2个小时以前是3个小时对脑力和体力都有不小的挑战。

由于Kubernetes在云原生领域“一统天下”CKA认证近几年也就“火”了起来相关的考试资料有很多你可以轻易地在各大网站上找到学完了我们的这个专栏课程再适当地强化训练一下拿到CKA证书应该不是什么太难的事情。

不过要注意的是因为Kubernetes版本更新很频繁所以CKA是有时效期的三年以前是两年过后失效就得重考你需要评估一下考试对自己收益再慎重做决定。

临别感言

聊了自己的学习经验,也总结了四条继续攻略的学习方向供你参考,在我们共度三个月的最后我也还有一些感触想跟你分享。

虽然这已经是我在极客时间的第三个专栏了,但挑战仍然是不小,从年初隆冬时的调研开始,到盛夏酷暑时的收笔完结,持续了大半年,很多的业余时间都“赔”进来了,但我觉得值。

和前两个课写的HTTP协议、C++语言比起来我使用Kubernetes的时间还是有点短所以自身的积累也就不那么深厚写文章不像以前能那么“信手拈来”要反复查文档、做实验来确认整个过程有苦有乐。现在课程结束了回头再看也算是对自己Kubernetes能力的一个思考和总结收获还是挺多的。

不过由于Kubernetes的知识点太深太杂虽然我尽力想把它们讲清楚课程里的每一节几乎都在15分钟左右对比前两个专栏的10分钟大幅度增长工作量加大了很多但感觉还是只说透了很少的一部分其他有用的相关内容就只能寥寥一两句话带过实在有点无奈和可惜。

以后如果有机会的话我想也还会和前两个专栏一样不定期地补充一些“加餐”把自己对Kubernetes最新的理解和心得分享出来让我们持续学习共同进步。

另外我还看到有同学在留言里反复提及“上生产系统”这个要求对于我来说可能是有点高了。因为我基本不参与系统运维工作搭建Kubernetes环境只是方便我自己的开发测试真正上线应用还是会找专门的运维同事而实际的生产环境要比虚拟机环境复杂得多我没有时间也没有能力把这些都了解清楚所以也只能抱歉了。

不知道你是否一直在默默认真学习,在专栏要结束的今天,我非常希望能在留言区见到你的身影,听听你学习这个专栏的感受和收获,如果你对课程有任何反馈与建议,也欢迎填写这份问卷。

行文至此,那就让我们在这里道一声珍重,说一声“再见”吧。

祝愿你以此为新征途的起点满怀信心和希望大步迈向充满无尽可能的Kubernetes新世界开拓出自己的成功之路