1.6 阅读k8s源码的准备工作

ops/2025/1/19 3:54:06/

准备工作

找个合适的ide

  • 比如goland

下载k8s源码

项目地址

  • https://github.com/kubernetes/kubernetes
  • 可以git下载,也可以下载zip包,还可以go get 下载
git clone https://github.com/kubernetes/kubernetes.git 

本教程基于k8s 1.21 版本

k8s组件代码仓库地址(选择下载)

  • 文档地址

各个组件仓库地址

  • k8s.io/api
  • k8s.io/apiextensions-apiserver
  • k8s.io/apimachinery
  • k8s.io/apiserver
  • k8s.io/cli-runtime
  • k8s.io/client-go
  • k8s.io/cloud-provider
  • k8s.io/cluster-bootstrap
  • k8s.io/code-generator
  • k8s.io/component-base
  • k8s.io/controller-manager
  • k8s.io/cri-api
  • k8s.io/csi-api
  • k8s.io/csi-translation-lib
  • k8s.io/kube-aggregator
  • k8s.io/kube-controller-manager
  • k8s.io/kube-proxy
  • k8s.io/kube-scheduler
  • k8s.io/kubectl
  • k8s.io/kubelet
  • k8s.io/legacy-cloud-providers
  • k8s.io/metrics
  • k8s.io/mount-utils
  • k8s.io/pod-security-admission
  • k8s.io/sample-apiserver
  • k8s.io/sample-cli-plugin
  • k8s.io/sample-controller

go get 下载路径 k8s.io/xxxx

  • 举例 :go get -d k8s.io/kube-controller-manager

阅读源码的注意事项

先理解功能

  • 首先理解某一项功能,带着功能去看源码事半功倍,在某些晦涩难懂的地方还可以根据功能的实现反推代码目的

换位思考,如果你实现怎么做

  • 可以时长反问自己,如果是你来实现这里怎么做

假设某一块方法去掉,会有什么效果

  • 遇到不好理解的方法或者模块时,思考为什么要加这个,去掉会有什么问题就可以更好的理解

多看架构图,多总结


http://www.ppmy.cn/ops/151265.html

相关文章

Java语言的软件工程

Java语言的软件工程 引言 在当今信息技术飞速发展的时代,软件工程作为一门应用广泛的学科,承担着开发高质量软件系统的重要责任。Java语言以其跨平台特性、安全性和强大的库支持,已经成为软件工程领域中最流行的编程语言之一。本文将深入探…

装饰器模式详解(附代码案例和源码分析)

目录 装饰器模式的本质 装饰器模式和继承结构的对比 源码中IO流的继承结构 具体装饰器类 装饰器的组合应用 装饰器链的特点 代码案例 定义coffee类型 coffee的实现类 装饰器抽象类 装饰器 - 季节限定 装饰器——加牛奶 装饰器——加糖 生成咖啡的简单工厂 咖…

H3CNE-11-生成树协议STP

STP:Spanning Tree Protocol,可以在提高可靠性的同时又能避免环路带来的各种问题。 一句话总结STP的作用:防止交换机环路。 为了提高网络的可靠性,交换网络中通常会使用冗余链路,然而冗余链路会给交换网络带来环路风险…

高通8255 Android STR 启动失败要因分析调查

目录 背景: 调查过程: 步骤1: slog2info | grep vmm_service 步骤2: slog2info | grep qvm 总结: 解决方案 背景: 调试高通8255 STR的STR过程中发现Android和QNX进入STR状态后,脱出STR时…

Bootstrap 下拉菜单

Bootstrap 下拉菜单 Bootstrap 是一个流行的前端框架,它提供了许多预构建的组件,其中之一就是下拉菜单。下拉菜单是一个交互式元素,允许用户从一系列选项中选择一个。在本篇文章中,我们将详细介绍如何在 Bootstrap 中创建和使用下…

Android SystemUI——车载CarSystemUI加载(八)

Android 系统早期的状态栏和导航栏对于手机设备来说那是相当重要的,但是随着手机版本的不断更新,状态栏和导航栏对于手机的重要性在逐渐降低,特别是在快捷手势出现之后,导航栏几乎变得可有可无。但是对于当前如火如荼的车载系统来说,状态栏和导航栏却几乎是必备的,谷歌自…

多包单仓库(monorepo)实现形式

目录 背景 需求和方案 从0开始搭建一个Monorepo项目 创建 配置全局公共样式 配置全局公共组件 方式1:不需要独立发布的组件包,只在当前项目的子项目中使用 方式2:需要独立发布和版本维护的包 子项目的独立构建和部署 总结 Monorepo优势 便于代码维护、管理 支持…

怎样应对发现的小红书笔记详情API安全风险?

及时切断风险源 暂停 API 访问权限:一旦发现安全风险,如可疑的 API 调用行为(异常高的请求频率、来自未授权 IP 地址的访问等),首先要做的是暂停可能涉及风险的 API 访问权限。如果是通过 API 密钥进行访问控制&#x…