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各个组件的代码分别进行介绍,大家可以持续关注,更新较慢,请谅解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python之文件的相关操作

文件和文件夹的移动、复制、删除、重命名 一、概述 Python中对文件和文件夹进行移动、复制、删除、重命名,主要依赖os模块和shutil模块,以下用实例集中演示文件的移动、复制、删除、重命名,用到的时候直接查询即可。 二、实例 1 #!/usr/bi…

C++11教程:C++11新特性大汇总(第六部分)

C11是2011年发布的C标准,是C的一次重大升级。 第十二部分:C多文件编程 十一、C11列表初始化(统一了初始化方式) 我们知道,在 C98/03 中的对象初始化方法有很多种,请看下面的代码: //初始化列…

C#编程-实现在文本文件中的读和写

实现在文本文件中的读和写 Stream类用于从文本文件读取数据和向文本文件写入数据。它是一个抽象类,支持向流读写字节。如果文件的数据仅是文本,那么您可以使用StreamReader类和StreamWriter类来完成相应的读和写任务。 StreamReader类 StreamReader类继承自从抽象类TextRea…

大家都在问的牛仔外套来啦

经典永不过时的牛仔外套, 绝对是衣橱里必不可少的时尚单品之一 重工水洗破洞乞丐风,个性潮流感十足 时尚帅气,男宝女宝都能穿还有妈妈款哦 经典宽松版型,不挑身材不挑人穿对身材包容性很强 怎么穿都好看,简单搭配…

手轮脉冲平滑处理笔记

这是一个求手脉倍率((Hw_Control.mult_ratio)与手脉脉冲计数延迟次数即累计过去n次的平均值(Hw_Control.lag_num)之间关系算法的计算过程笔记文档 1、已知 mult_ratio=1时 lag_num=10; mult_ratio=10时 lag_num=20; .mult_ratio==100时 lag_num=30; 以此类推 2、设lag_num…

如何实现两台Linux虚拟机ssh免密登录

实验开始前 1.准备好两台虚拟机(下载好镜像文件的) 2.实验步骤 公钥验证:(免密登陆验证方式) (1)生成非对称秘钥 [rootclient ~]# ssh-keygen -t rsa Generating public/private rsa key pai…

无线与局域网技术期末划题自制答案

简答题 1.描述5G的三大应用场景? 5G的三大应用场景包括增强型移动宽带(eMBB)、超可靠低延迟通信(URLLC)和大规模机器类型通信(mMTC)。增强型移动宽带(eMBB)主要用于支持…

数字化转型究竟是什么意思?

在这个飞速发展的数字时代,数字化转型已成为各个行业不可回避的趋势。从企业到组织,都在努力借助先进的数字技术,以迎合时代潮流,提升效率、创造价值。数字化转型不仅仅是技术的升级,更是一场全方位的变革,…

3d模型为什么只显示线是什么原因怎么解决---模大狮模型网

在3D建模中,有时我们会遇到模型只显示线框,而没有填充色或纹理的情况。这种问题可能会导致场景的不协调和视觉效果的不理想,影响到我们的设计效率和效果。本文将探讨一些可能导致该问题的原因,并提供解决方法,以帮助您…

DUET: Cross-Modal Semantic Grounding for Contrastive Zero-Shot Learning论文阅读

文章目录 摘要1.问题的提出引出当前研究的不足与问题属性不平衡问题属性共现问题 解决方案 2.数据集和模型构建数据集传统的零样本学习范式v.s. DUET学习范式DUET 模型总览属性级别对比学习正负样本解释: 3.结果分析VIT-based vision transformer encoder.消融研究消…

导波光学理论基础

导波光学理论基础 一、电磁场基本方程 1.1 麦克斯韦方程组、物质方程、边值关系 麦克斯韦方程组 麦克斯韦方程组是一组微分方程,只能求得通解 如果需要唯一的确定各场矢量,还需补充一些边界条件 线性、静止、各向同性介质的物质方程 D ⃗ ε E ⃗ …

限流式保护器在户外汽车充装的应用

摘 要:国家标准GB51348-2019中规定储备仓库、电动车充电等场所的末端回路应设置限流式电气防火保护器。电气防火限流式保护器可以有效克服传统断路器、空气开关和监控设备存在的短路电流大、切断短路电流时间长、短路时产生的电弧火花大,以及使用寿命短等…

MySQL:ERROR 1067 - Invalid default value for ‘end_time‘【解决办法】

问题描述(mysql版本:5.7.36): 今天在使用Navicat可视化工具运行sql文件,发生如下错误: 在图中,sql是没有错误的,但是运行报错Invalid default value for end_time。 解决办法&#…

模型的权值平均的原理和Pytorch的实现

一、前言 模型权值平均是一种用于改善深度神经网络泛化性能的技术。通过对训练过程中不同时间步的模型权值进行平均,可以得到更宽的极值点(optima)并提高模型的泛化能力。 在PyTorch中,官方提供了实现模型权值平均的方法。 这里…

数据结构(2023-2024)

一、判断题 1.队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进后出的结构。(F) 队列先进先出,在表的一端插入元素,在表的另一端删除元素。允许插入的一端称为队尾(rear)&#…

搭建Docker私有镜像服务器

一、前言 1、本文主要内容 基于Decker Desktop&Docker Registry构建Docker私有镜像服务器测试在CentOS 7上基于Docker Registry搭建公共Docker镜像服务器修改Docker Engine配置以HTTP协议访问Docker Registry修改Docker Engine配置通过域名访问Docker Registry配置SSL证书…

了解不同方式导入导出的速度之快

目录 一、用工具导出导入 Navicat(速度慢) 1.1、导入: 共耗时: 1.2、导出表 共耗时: 二、用命令语句导出导入 2.1、mysqldump速度快 导出表数据和表结构 共耗时: 只导出表结构 导入 共耗时&…

C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化

Z算法也是模式搜索(Pattern Search Algorithm)的常用算法。 本文代码的运算效果: 一、Z 算法 线性时间模式搜索算法的Z算法,在线性时间内查找文本中模式的所有出现。 假设文本长度为 n,模式长度为 m,那么…

__init__中的__getattr__方法

结论: 在 __init__.py 文件中定义的 __getattr__ 方法,如果存在的话,通常用于处理包级别的属性访问。在包级别,__getattr__ 方法在导入模块时被调用,而不是在实例化包时。当你尝试访问包中不存在的属性时,__getattr__ 方法会被调用,给你一个机会来处理这个属性访问。 …

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后,还需要安装gcc编译器和g编译器。 gcc:编译C语言程序的编译器; g:编译C代码的编译器; 1、在Windows下安装VSCode; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…