我要写什么

《看懂每一行代码 - 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,享受技术的乐趣。

还有一个重要的原因是我知道在读源码的过程中,每一个知识点只有写出来,把别人讲懂,才能真正说明自己读懂了。所以写这个系列教程也是出于对自己的监督,输出倒逼输入。

写在最前面 - 《看懂每一行代码 - kubernetes》的更多相关文章

  1. 不要写很酷但同事看不懂的Java代码

    你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码.下面这一行代码(出自大牛之手)据说可以征服你的朋 ...

  2. Android中活动的最佳实践(如何很快的看懂别人的代码activity)

    这种方法主要在你拿到别人的代码时候很多activity一时半会儿看不懂,用了这个方法以后就可以边实践操作就能够知道具体哪个activity是干什么用的 1.新建一个BaseActivity的类,让他继 ...

  3. 你闺女也能看懂的插画版 Kubernetes 指南

    Matt Butcher是Deis的平台架构师,热爱哲学,咖啡和精雕细琢的代码.有一天女儿走进书房问他什么是Kubernetes,于是就有了这本插画版的Kubernetes指南,讲述了勇敢的Phipp ...

  4. 看懂下面C++代码才说你理解了C++多态虚函数!

    #include <iostream> using namespace std ; class Father { private :  virtual void Say()  //只有添加 ...

  5. C语言-人狼羊菜问题-最容易看懂的解决方法及代码

    题目描述:农夫需要把狼.羊.菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊.请考虑一种方法,让农夫能够 ...

  6. 从字符串到常量池,一文看懂String类设计

    从一道面试题开始 看到这个标题,你肯定以为我又要讲这道面试题了 // 这行代码创建了几个对象? String s3 = new String("1"); 是的,没错,我确实要从这里 ...

  7. T4代码生成脚本从添加注释,添加命名空间开始(一款强大的代码生成工具从看懂脚本,到随心所欲的玩弄代码,本文只是T4的冰山一角,博主将不断深入探索并完善该文章)

    精通T4脚本要从读懂脚本的关键代码片段开始  1.1. 给类添加注释-->看懂类对应的代码:<#=codeStringGenerator.EntityClassOpening(entity ...

  8. 【Luogu】P2765魔术球问题(没看懂的乱搞)

    题目链接 这题……讲道理我没看懂. 不过我看懂题解的代码是在干嘛了qwq 题解是zhaoyifan的题解 然后……我来讲讲这个题解好了. 题解把值为i的球拆成了两个,一个编号是i*2,一个编号是i*2 ...

  9. HashMap源码深度剖析,手把手带你分析每一行代码,包会!!!

    HashMap源码深度剖析,手把手带你分析每一行代码! 在前面的两篇文章哈希表的原理和200行代码带你写自己的HashMap(如果你阅读这篇文章感觉有点困难,可以先阅读这两篇文章)当中我们仔细谈到了哈 ...

随机推荐

  1. node05

    1.ejs: const ejs = require('ejs') ejs.renderFile('./template/a.ejs', {name:'cc'}, function (err, dat ...

  2. [LeetCode] Push Dominoes 推多米诺骨牌

    There are N dominoes in a line, and we place each domino vertically upright. In the beginning, we si ...

  3. 03-es6语法 Promise 和 es8语法 async await 的了解和基本使用

    //Promise // 1.说明 : Promise 是 es6 中提出的新语法 // 2.作用 : 用 '用户编写同步代码' 的方式 '处理异步' 的一种解决方案 // 3.以前 : 处理异步 , ...

  4. Python课程学习总结

    Python的介绍 Python是一种高级动态.完全面向对象的语言,函数.模块.数字.字符串都是对象,并且完全支持继承.重载.派生.多继承,有益于增强源代码的复用性. Python是一种计算机程序设计 ...

  5. c++ 获取磁盘句柄

    磁盘的句柄可以用CreateFile函数获得.获得句柄后,就可以配合其他函数对磁盘进行一些操作. int main() { HANDLE hFile = INVALID_HANDLE_VALUE; h ...

  6. 【分享】【原创开源应用第4期】给ili9488,RA8875类显示屏的emWin底层增加DMA加速方案

    说明:1.emWin底层中最重要的一个优化就是16bpp绘制,特此为其增加DMA加速,已经支持RA8875和ili9488.2.使用中务必将emWin任务设置为除了空闲任务,统计任务以外的最低优先级, ...

  7. 浅谈Java中的锁:Synchronized、重入锁、读写锁

    Java开发必须要掌握的知识点就包括如何使用锁在多线程的环境下控制对资源的访问限制 ◆ Synchronized ◆ 首先我们来看一段简单的代码: 12345678910111213141516171 ...

  8. #研发解决方案#研发协作平台CloudEngine

    Cloud Engine:大杀器如何炼成 郑昀(微博:http://weibo.com/yunzheng) 创建于2016/6/18 最后更新于2016/6/19 点击查看我的<如何从零搭建一个 ...

  9. 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)

    注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...

  10. [Java]LeetCode278. 第一个错误的版本 | First Bad Version

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...