写在最前面 - 《看懂每一行代码 - kubernetes》
我要写什么
《看懂每一行代码 - kubernetes》会包含k8s整个项目的源码解析,考虑到门槛问题,在开始分析k8s之前我会通过一些更低难度的golang开源项目讲解来帮助大家提升golang编码技能;然后通过与k8s相关的一些项目的讲解,打通阻碍k8s学习的一些大障碍;最后集中火力,将kubernetes项目的整个源码吃透。
总体来说,本系列计划分三步走完成源码层面掌握k8s的目标:
-
golang技能提升
-
k8s依赖技术
-
k8s核心组件
目前关于k8s应用的教程已经很多了,其中不乏相当优秀的文章,所以我不会特地去讲解k8s是功能层面知识点。本教程对大家的入门要求是会一点golang,会k8s的常规操作。
写给谁看
k8s的热门程度不需要我再赘述,k8s技术的重要性相信大家也都清楚,不会玩k8s怎么好意思说自己是搞云计算的呢?
对k8s技术有一定了解的技术人员,如果你对k8s感兴趣,并且希望深入掌握这项技能,乃至从源码层面掌握k8s,做一个大牛,参与CNCF社区贡献,但是苦于源码门槛太高,不知从何下手,那就对了,这个教程就是写给你看的!
有什么特点
《看懂每一行代码 - kubernetes》会在公众号“CloudGeek”和博客园“CloudGeek”同步更新。为了贴合移动端阅读时间碎片化的特点,本教程每一篇文章不会太长,阅读完大约是十几分钟的样子;当然要彻底掌握谈及的每一行代码,可能还是需要你打开PC,在IDE中自己对照着过一边源码,这个步骤需要多少时间就和自己的基本功相关了。
本系列教程从cache2go等只有几百行源码的小项目开始讲解,针对有一些golang基础知识,但是并不精通golang,暂时还无法直接阅读k8s源码但是想往k8s源码贡献者发展的IT技术人员。
在源码分析过程中会涉及到一些技术专题,我会在《Golang进阶 - 专题讲解》等系列专门分析。比如说源码中涉及到了堆操作,涉及到了各种锁的应用,一致性哈希算法等各个方向的问题,我会专门写一个专题文章讲解,让有技术强迫症的朋友的能够全面掌握k8s,而不是看几行,留着一个看不懂的算法,心里一个疙瘩,纠结则影响进度,不纠结则觉得不完整。
为什么要写
首先我在工作中主要研究方向是容器化技术栈,也就是CNCF社区中的一堆技术。为了能够在这个方向深入,我给自己定了一个目标:成为kubernetes组织的member。成为member简单说就是能够持续贡献源码。在阅读源码的过程中走了很多弯路,最后我意识到这么大的项目开始就一头扎进去及其容易迷失在k8s庞大的源码及第三方依赖库里。所以我后来是选择了从小项目开始读源码,提升能力,再看k8s。我希望把这个过程分享出来,帮助更多人掌握k8s,享受技术的乐趣。
还有一个重要的原因是我知道在读源码的过程中,每一个知识点只有写出来,把别人讲懂,才能真正说明自己读懂了。所以写这个系列教程也是出于对自己的监督,输出倒逼输入。