Open zoux86 opened 1 year ago
本人工作(容器云基础架构师)3年来的k8s源码解析,从源码角度出发,学习k8s的原理。
从kube-apiserver kube-controller-manager kube-scheduler kubelet proxy 和 kubectl 这6个组件为主线进行源码级别的学习。
同时还顺便记录一些平时用到和k8s相关的知识,例如etcd, docker, linux等相关知识。
源码地址: https://github.com/zoux86/learning-k8s-source-code
(1)为什么分享
主要是陆陆续续有同学反馈repo内容确实对他有帮助,有位同学还私信我由此找到了一份满意的工作。
这个过程中获得了一点点成就感,希望也能够帮助到更多的入门小白
本人k8s学习路程如下:
(1)第一阶段线了解k8s,是什么,能做什么,架构,核心资源对象,设计理念,发展历程等等
(2)第二阶段开始使用k8s, 自己创建pod, deploy, job等资源。能够基于k8s开发一下组件,比如实现一个controller监听pod的创建删除等。【看山是山】
(3)第三阶段开始阅读源码,了解底层实现。这个过程会对k8s有一个更深的理解。比如创建一个pod的完成历程是什么样的,k8s gc机制到底是怎么实现的。namespaces删除的时候怎么做到删除所有资源后在删除的。【看山不是山】
这里推荐源码阅读方式:理论+实践结合。
理论:通过ide之间各种跳转阅读源码
实践:自己动手在[关键代码]处增加日志,通过查看日志输出理解源码 (repo也介绍了如何二进制搭建一套K8s集群)
(4)第四阶段在排查问题中进一步深入k8s的理解
第三阶段基本上是理解了大体的原理,这个阶段要求需要一定的场景。比如在k8s集群10W pod, 上千节点。pod调度慢,deploy滚动更新异常,gc pod失败等场景。在这些场景下,有了第三阶段的基础,就知道问题大概出在哪里,从而深入挖掘具体原因。第三第四阶段通常结合在一起。
有了排查问题的过程,就会对k8s的设置理念有了更深入的了解。【看山还是山】
这是来自QQ邮箱的假期自动回复邮件。 您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
@zoux86 感谢分享,本条内容将通过云原生社区动态微信公众号发布。
感谢分享,非常不错的源码分析
分享内容
本人工作(容器云基础架构师)3年来的k8s源码解析,从源码角度出发,学习k8s的原理。
从kube-apiserver kube-controller-manager kube-scheduler kubelet proxy 和 kubectl 这6个组件为主线进行源码级别的学习。
同时还顺便记录一些平时用到和k8s相关的知识,例如etcd, docker, linux等相关知识。
源码地址: https://github.com/zoux86/learning-k8s-source-code
分享收获
(1)为什么分享
主要是陆陆续续有同学反馈repo内容确实对他有帮助,有位同学还私信我由此找到了一份满意的工作。
这个过程中获得了一点点成就感,希望也能够帮助到更多的入门小白
备注
本人k8s学习路程如下:
(1)第一阶段线了解k8s,是什么,能做什么,架构,核心资源对象,设计理念,发展历程等等
(2)第二阶段开始使用k8s, 自己创建pod, deploy, job等资源。能够基于k8s开发一下组件,比如实现一个controller监听pod的创建删除等。【看山是山】
(3)第三阶段开始阅读源码,了解底层实现。这个过程会对k8s有一个更深的理解。比如创建一个pod的完成历程是什么样的,k8s gc机制到底是怎么实现的。namespaces删除的时候怎么做到删除所有资源后在删除的。【看山不是山】
这里推荐源码阅读方式:理论+实践结合。
理论:通过ide之间各种跳转阅读源码
实践:自己动手在[关键代码]处增加日志,通过查看日志输出理解源码 (repo也介绍了如何二进制搭建一套K8s集群)
(4)第四阶段在排查问题中进一步深入k8s的理解
第三阶段基本上是理解了大体的原理,这个阶段要求需要一定的场景。比如在k8s集群10W pod, 上千节点。pod调度慢,deploy滚动更新异常,gc pod失败等场景。在这些场景下,有了第三阶段的基础,就知道问题大概出在哪里,从而深入挖掘具体原因。第三第四阶段通常结合在一起。
有了排查问题的过程,就会对k8s的设置理念有了更深入的了解。【看山还是山】