k8s源码阅读环境配置

源码阅读环境配置

  k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理,同时提升我们Go编程能力。

  IDE使用Goland,代码阅读环境需要进行如下配置:

  1. 从github上下载代码:https://github.com/kubernetes/kubernetes
  2. 在GOPATH目录下新建文件夹:$GOPATH/src/k8s.io/kubernetes
  3. 将下载的zip包解压后,将kubernetes-master目录下的cmd、pkg、plugin、vender、third_party 5个文件夹拷贝到$GOPATH/src/k8s.io/kubernetes中
  4. 将将kubernetes-master/staging/src/k8s.io中的文件都拷贝到$GOPATH/src/k8s.io/kubernetes/vender/k8s.io中(先删除vender/k8s.io中的非文件夹文件)
  5. 从IDE打开文件夹$GOPATH/src/k8s.io/kubernetes,打开设置-Go模块,不勾选“启用Go模块集成”选项。

k8s代码分析书籍:《Kubernetes源码剖析》郑东旭 著

Kubernetes代码布局如下:

参考链接:如何看k8s源码 - Kubernetes中文社区_分享最新K8S资讯、教程、实践和中文文档

Kubernetes架构

Kubernetes主要组件如下:

  • kube-apiserver组件:集群的HTTP REST API接口,是集群控制的入口。
  • kube-controller-manager组件:集群中所有资源对象的自动化控制中心。
  • kube-scheduler组件:集群中Pod资源对象的调度服务。
  • kubelet组件:负责管理节点上容器的创建、删除、启停等任务,与Master节点进行通信。kubelet实现了3种开放接口CRI、CNI和CSI。

  • kube-proxy组件:负责Kubernetes服务的通信及负载均衡服务。
  • container组件:负责容器的基础管理服务,接收kubelet组件的指令。

各组件代码结构设计风格高度一致,初始化过程也非常类似,初始化过程如下:

专栏中的其他文章中会对Kubernetes各个组件的代码分别进行介绍,大家可以持续关注,更新较慢,请谅解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】

文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifactflag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prctl函数 第一条是禁止…

JavaScript解构赋值完全手册

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ 目录 ✨ 前言 第一节:解构赋值的基本用法 第二节:对象解构赋值 第三节:数组解构赋值 第四节:参数…

Qt基础-QtGlobal常用的全局函数及随机数产生实例

目录 一、全局函数定义 二、应用上面的函数产生一个随机数 三、随机数实例

java8 Stream()流 list转map

List<User> list new ArrayList<>();User user1 new User();user1.setUserId("1");user1.setUserName("李四1");list.add(user1);User user2 new User();user2.setUserId("2");user2.setUserName("李四2");list.add(us…

Fluids —— MicroSolvers DOP

目录 Gas SubStep —— 重复执行对应的子步 Switch Solver —— 切换解算器 Gas Attribute Swap —— 交换、复制或移动几何体属性 Gas Intermittent Solve —— 固定时间间隔计算子解算器 Gas External Forces —— 计算外部力并更新速度或速度场 Gas Particle Separate…

【linux】tcpdump 使用

tcpdump 是一个强大的网络分析工具&#xff0c;可以在 UNIX 和类 UNIX 系统上使用&#xff0c;用于捕获和分析网络流量。它允许用户截取和显示发送或接收过网络的 TCP/IP 和其他数据包。 一、安装 tcpdump 通常是默认安装在大多数 Linux 发行版中的。如果未安装&#xff0c;可…

竞赛保研 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸表情识别 该项目较…

2023年12 月电子学会Python等级考试试卷(六级)答案解析

青少年软件编程(Python)等级考试试卷(六级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 运行以下程序,输出的结果是?( ) class A(): def __init__(self,x): self.x=x+1 def b(self): return self.x*self.x t=A(3) print(t.b())

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现获取图像并对图像进行边缘检测(C++)

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现获取图像并对图像进行边缘检测&#xff08;C&#xff09; Baumer工业相机Baumer工业相机使用OpenCV对图像进行边缘检测的技术背景在NEOAPI SDK里使用OpenCV建立边缘检测功能在NEOAPI SDK里使用边缘检测功能对图像进行…

网络基础面试题(二)

11.什么是网桥&#xff1f;防火墙的端口防护是指什么&#xff1f; 网桥是一种网络设备&#xff0c;用于连接两个或多个局域网&#xff08;LAN&#xff09;并转发数据包。它能够根据MAC地址来识别和转发数据&#xff0c;提高网络的传输效率和安全性。 防火墙的端口防护是指对防火…

prometheus 黑盒监控

黑盒监控 “白盒监控” 是需要把对应的Exporter程序安装到被监控的目标主机上&#xff0c;从而实现对主机各种资源以及状态的数据采集工作 ”黑盒监控“ 是不需要把Exporter程序部署到被监控的目标主机上&#xff0c;比如全球的网络质量的稳定性&#xff0c;通常用ping操作&am…

2019年认证杯SPSSPRO杯数学建模A题(第一阶段)好风凭借力,送我上青云全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 纸飞机在飞行状态下的运动模型 A题 好风凭借力&#xff0c;送我上青云 原题再现&#xff1a; 纸飞机有许多种折法。世界上有若干具有一定影响力的纸飞机比赛&#xff0c;通常的参赛规定是使用一张特定规格的纸&#xff0c;例如 A4 大小的纸张…

数据结构——队列(Queue)

目录 1.队列的介绍 2.队列工程 2.1 队列的定义 2.1.1 数组实现队列 2.1.2 单链表实现队列 2.2 队列的函数接口 2.2.1 队列的初始化 2.2.2 队列的数据插入&#xff08;入队&#xff09; 2.2.3 队列的数据删除&#xff08;出队&#xff09; 2.2.4 取队头数据 2.2.5 取队…

让车辆做到“耳听八方”,毫米波雷达芯片与系统设计

摘要: 毫米波雷达,是指工作在毫米波波段(一般为30~300GHz频域,波长1~10mm)探测的雷达。毫米波雷达体积小、质量轻、空间分辨率高,穿透“雾烟灰”的能力强,还具备全天候全天时工作的优势。在智能网联汽车体系中,毫米波雷达是系统感知层不可或缺的重要硬件,能让智能驾…

python匹配问题

脏数据匹配 一般数据建模步骤中&#xff0c;数据清洗耗时占比80%以上&#xff0c;因为现实中接触到的数据相当脏&#xff0c;无法直接简单的用pandas的merge函数解决。下面以QS大学排名的匹配为例&#xff0c;简单介绍脏数据匹配中会遇到的问题和主要步骤。 1 问题描述 给定…

Django全文搜索

Django ORM允许你执行简单的匹配操作&#xff0c;例如contains过滤器&#xff08;或者不区分大小写的icontains&#xff09;。 比如查询正文中包含django的文章 from blog.models import Post Post.objects.filter(body__containsframework) 但是如果希望执行复杂的搜索查询&…

Vue.js设计与实现阅读2

Vue.js设计与实现阅读-2 1、前言2、框架设计的核心要素2、1 提升用户体验2、2 控制代码体积2、3 Tree-Shaking2、4 特性开关2、5 错误处理 1、前言 上一篇我们了解到了 命令式和声明式的区别&#xff0c;前者关注过程&#xff0c;后者关注结果了解了虚拟dom存在的意义&#x…

WPF常用技巧-多线程处理

WPF支持单线程单元模型&#xff0c;该模型与在Windows窗体应用程序中使用的模型非常类似&#xff0c;具有以下几条原则&#xff1a; WPF元素具有线程关联性。创建WPF元素的线程拥有所创建的元素&#xff0c;其他线程不能直接与这些WPF元素进行交互。WPF对象都在类层次的某个位…

Java后端开发——SSM整合实验

文章目录 Java后端开发——SSM整合实验一、常用方式整合SSM框架二、纯注解方式整合SSM框架 Java后端开发——SSM整合实验 一、常用方式整合SSM框架 1.搭建数据库环境&#xff1a;MySQL数据库中创建一个名称为ssm的数据库&#xff0c;在该数据库中创建一个名称为tb_book的表 …

CAD数据转pcl可读数据

//-----------------------读取CAD模型------------------------vtkSmartPointer<vtkSTLReader> reader vtkSmartPointer<vtkSTLReader>::New();reader->SetFileName("data.stl");reader->Update();//----------------------转出到poly格式------…