我要写什么

《看懂每一行代码 - 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. Exp3 免杀原理与实践 20164302 王一帆

    1 实践内容 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程( ...

  2. Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(1)

    场景: 近期做的TODO APP需要在主页添加一个功能,就是可以左滑删除,右滑完成.看了一下当前其他人做的例如仿探探式的效果,核心功能基本一样,但是和我预想的还是有少量区别,于是干脆自己重头学一遍如何 ...

  3. ubuntu 14.04 安装 rabbitmq

    1. sudo apt-get update 安装rabbitmq 2. sudo apt-get install rabbitmq-server 添加用户 3. sudo rabbitmqctl a ...

  4. STS(Spring Tool Suite)下SSM(Spring+SpringMVC+Mybatis)框架搭建(一)

    最近在用SSM框架做一个网站,就顺便把自己要做的笔记需要了解的东西都写了下来,看看对大家学习SSM框架有没有帮助. 开发环境: 1.win10 64位 2.spring-tool-suite-3.9. ...

  5. 第一次冲刺意见汇总&团队第一阶段总结

    大家对我们小组的意见基本是: 1.设计界面简单 2.功能较少 3.没有实现切换歌曲的功能 谢谢HT小组的走心评价 接下来我们组内准备:1.先调节用户界面,插入一些图片,美化界面,给用户直观的体验上升. ...

  6. LeetCode 字符串专题(一)

    目录 LeetCode 字符串专题 <c++> \([5]\) Longest Palindromic Substring \([28]\) Implement strStr() [\(4 ...

  7. 你不知道的JS之作用域和闭包(五)作用域闭包

    原文:你不知道的js系列 一个简单粗暴的定义 闭包就是即使一个函数在它所在的词法作用域外部被执行,这个函数依然可以访问这个作用域. 比如: function foo() { var a = 2; fu ...

  8. ipset和iptables配合来自动封闭和解封有问题的IP

    iptables封掉少量ip处理是没什么问题的,但是当有大量ip攻击的时候性能就跟不上了,iptables是O(N)的性能.而ipset就像一个集合,把需要封闭的ip地址放入这个集合中,ipset 是 ...

  9. 替换url中的域名

    /**     *      * @param domain 域名     * @param port   端口号     * @param url    url路径     * @return   ...

  10. 折线图hellocharts的使用说明

    以前用过一次XCL-chart,但是感觉只适合固定图表,不去滑动的那种,因为你一滑动太卡了你懂得(毕竟作者好久没更新优化了),拙言大神我开玩笑的 ,毕竟我加你的群大半年了 - - 第二研究了一下ach ...