• Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载


    0. 前言

    1. 方法论

    • 第一步:熟悉 k8s 的基本功能,理解各个组件的分工,做到心中有数,但是不拘泥于掌握每一个功能细节,因为很多特性在日常开发中很难用到
    • 第二步:选定第一个要深入研究的组件,概览其支持的所有子命令和 flag,知道该组件能实现哪些功能(知道基于什么实现,和哪些组件打交道),比如看 kube-proxy 至少先知道是用 iptables实现的,得先补补 iptables的知识
    • 第三步:选定源码版本,不要追求 master 分支,但是建议选一个相对新的,或者公司正在使用的版本
    • 第四步:准备编译、测试环境。至少能够把看的组件编译出来,能够运行起来后 debug 的环境,这样才能在 debug 中看各种在读源码时不理解的对象在运行中到底存了哪些数据
    • 第五步:最快的速度抓住代码主线,泛读源码
    • 第六步:针对特定功能精读、调试、深入理解
    • 第七步:整体精读,适当深入三方库,公共库,绘制整理单个组件架构图、流程图等,帮助自己理解整个组件工作全流程,在平时使用中遇到 bug 后能够快速反应过来是哪个模块的问题
    • 最后:读完所有组件后融会贯通,理解各种公共库的抽取逻辑,汇总学习

    2. 准备

    • 创建目录:mkdir $GOPAH/src/k8s.io(Kubernetes 里 import 的 package 都是 k8s.io 作为前缀的)
    • 切换至创建的目录下载代码:git clone https://github.com/kubernetes/kubernetes.git
    • 切换至 1.13:git checkout -b 1.13 origin/release-1.13
    • Kubernetes 依赖都在 vendor 和 staging 目录下,将 staging 目录下的所有子目录复制到 $GOPAH/src/k8s.io 中,即可在 Goland 中正常阅读

    3. 参考文献

  • 相关阅读:
    主流数据可视化工具介绍:帆软FineBI
    AngularJS之表格序号
    AngularJS之表格设置样式
    正则点号和问号 +
    中国市场主流商业智能工具的对比
    ssh 认证指定端口
    EL表达式中获取list长度
    java 如何将byte中的有效长度转换为String
    RedHat Enterprise Linux 6.4-x86_64 md5:467B53791903F9A0C477CBB1B24FFD1F
    14.5.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁
  • 原文地址:https://www.cnblogs.com/wangao1236/p/11017977.html
Copyright © 2020-2023  润新知