首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
蒋豆芽
获赞
2074
粉丝
2342
关注
15
看过 TA
6141
男
五邑大学
2021
C++
IP属地:广东
牛客高级专栏作家,工作超级忙
私信
关注
拉黑
举报
举报
确定要拉黑蒋豆芽吗?
发布(552)
评论
刷题
收藏
蒋豆芽
关注TA,不错过内容更新
关注
2024-02-28 15:48
已编辑
五邑大学 C++
10. informer源码分析-Indexer源码分析
1.Indexer概述Indexer 中有 informer 维护的指定资源对象的相对于 etcd 数据的一份本地内存缓存,可通过该缓存获取资源对象,以减少对 apiserver、对etcd 的请求压力。 // staging/src/k8s.io/client-go/tools/cache/thread_safe_store.go type threadSafeMap struct { items map[string]interface{} indexers Indexers indices Indices ... } informer 所维护的缓存依赖于 threadSafeM...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:47
已编辑
五邑大学 C++
9. informer源码分析-Controller
1.controller 与 Processor 概述ControllerController 从 DeltaFIFO 中 pop Deltas 出来处理,根据对象的变化更新 Indexer 本地缓存,并通知 Processor 相关对象有变化事件发生。ProcessorProcessor 根据 Controller 的通知,即根据对象的变化事件类型,调用相应的 ResourceEventHandler 来处理对象的变化。先通过一张 informer 概要架构图看一下 Controller&Processor 所处位置与概要功能。<br>2.Controller 初始化与启...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:46
已编辑
五邑大学 C++
8. informer源码分析-DeltaFIFO源码分析
1.DeltaFIFO概述先从名字上来看,DeltaFIFO,首先它是一个FIFO,也就是一个先进先出的队列,而 Delta 代表变化的资源对象,其包含资源对象数据本身及其变化类型。Delta 的组成: type Delta struct { Type DeltaType Object interface{} } DeltaFIFO 的组成: type DeltaFIFO struct { ... items map[string]Deltas queue []string ... } type Deltas []Delta 具体来说,Del...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:44
已编辑
五邑大学 C++
7. informer源码分析-Reflector源码分析
1.Reflector概述Reflector 从 kube-apiserver 中 list&watch 资源对象,然后将对象的变化包装成 Delta 并将其丢到 DeltaFIFO 中。简单点来说,就是将 Etcd 的对象及其变化反射到 DeltaFIFO 中。Reflector 首先通过 List 操作获取全量的资源对象数据,调用 DeltaFIFO 的 Replace 方法全量插入 DeltaFIFO,然后后续通过 Watch 操作根据资源对象的变化类型相应的调用 DeltaFIFO 的 Add、Update、Delete 方法,将对象及其变化插入到 DeltaFIFO 中。Re...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:42
已编辑
五邑大学 C++
6. informer源码分析-初始化与启动分析
informer架构先来回忆一下informer的架构。Reflector:Reflector 从 kube-apiserver 中 list&watch 资源对象,然后调用 DeltaFIFO 的 Add/Update/Delete/Replace 方法将资源对象及其变化包装成 Delta 并将其丢到 DeltaFIFO 中;DeltaFIFO:DeltaFIFO 中存储着一个 map 和一个 queue,即map[object key]Deltas 以及 object key 的 queue,Deltas 为 Delta 的切片类型,Delta 装有对象及对象的变化类型(Added...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:41
已编辑
五邑大学 C++
5. informer源码分析-概要分析
k8s client-go k8s informers 实现了持续获取集群的所有资源对象、监听集群的资源对象变化功能,并在本地维护了全量资源对象的内存缓存,以减少对 apiserver、对 etcd 的请求压力。Informers 在启动的时候会首先在客户端调用 List 接口来获取全量的对象集合,然后通过 Watch 接口来获取增量的对象,然后更新本地缓存。1. k8s informer 概述我们都知道可以使用 k8s 的 Clientset 来获取所有的原生资源对象,那么怎么能持续的获取集群的所有资源对象,或监听集群的资源对象数据的变化呢?这里不需要轮询去不断执行 List 操作,而是调用...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-27 19:51
五邑大学 C++
4. client-go 编程式交互
Kubernetes 系统使用 client-go 作为 Go 语言的官方编程式交互客户端库,提供对 Kubernetes API Server 服务的交互访问。Kubernetes 的源码中已经集成了 client-go 的源码,无须单独下载。client-go 源码路径为 vendor/k8s.io/client-go。开发者经常使用 client-go 基于 Kubernetes 做二次开发,所以 client-go 是开发者应熟练掌握的必会技能。<br>1. client-go 源码结构client-go 的代码库已经集成到 Kubernetes 源码中了,无须考虑版本兼容...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-28 15:39
已编辑
五邑大学 C++
3. kubectl 命令行交互
在维护 Kubernetes 系统集群时,kubectl 应该是最常用的工具之一。从 Kubernetes 架构设计的角度看,kubectl 工具是 Kubernetes API Server 的客户端。它的主要工作是向 Kubernetes API Server 发起 HTTP 请求。Kubernetes 是一个完全以资源为中心的系统,而 kubectl 会通过发起 HTTP 请求来操纵这些资源,以控制 Kubernetes 系统集群。Kubernetes 官方提供了命令行工具(CLI),用户可以通过 kubectl 以命令行交互的方式与 Kubernetes API Server 进行通信...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-27 19:35
五邑大学 C++
2. Kubernetes 核心数据结构
1. Group、Version、Resource 核心数据结构理解 Kubernetes 核心数据结构,在阅读源码时可以事半功倍并能够深刻理解 Kubernetes 核心设计。在整个 Kubernetes 体系架构中,资源是 Kubernetes 最重要的概念,可以说 Kubernetes 的生态系统都围绕着资源运作。Kubernetes 系统虽然有相当复杂和众多的功能,但它本质上是一个资源控制系统——注册、管理、调度资源并维护资源的状态。在 Kubernetes 庞大而复杂的系统中,只有资源是远远不够的,Kubernetes 将资源再次分组和版本化,形成 Group(资源组)、Versio...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-02-27 19:26
五邑大学 C++
1. 使用 vs-code 来阅读源码
1. 下载源码地址:https://github.com/kubernetes/kubernetes/releases/tag/v1.25.15版本自己选择。下载到本地目录,如:在 k8s-1.25 目录下创建 src/k8s.io 目录,注意目录层次,.github 在 src/k8s.io 下。<br>2. 使用 vscode使用 vscode 打开 D:\code\k8s-1.25\src\k8s.io 目录,这时会提示我们下载 go 库,按照提示下载按照即可。安装完成后,打开 cmd,修改镜像源:go env -w GOPROXY=https://goproxy.io/接着...
Kubernetes源码...
0
点赞
评论
收藏
分享
2024-01-11 22:43
五邑大学 C++
leaf和spine
传统的数据中心计算网络由接入层、汇聚层和核心层组成,以南北流量为主,传统的网络结构在很长一段时间内支撑了各种类型的数据中心。但随着新的应用及数据量急剧增长,数据中心的规模不断膨胀,对于网络架构的要求也不断提升,东西流量逐渐成为数据中心内部的主流方式,因此数据中心中诞生了新的网络拓扑架构——leaf-spine(叶脊)结构。什么是leaf-spine架构在leaf-spine架构中有两个重要组件,leaf(叶)交换机和spine(脊)交换机。 其中spine交换机可以当做传统三层架构中的核心交换机,只是,这里的spine交换机不再是三层架构中的大型机箱式交换机,而是高端口密度的交换机。而leaf...
技术杂文选
0
点赞
评论
收藏
分享
2024-01-11 22:38
五邑大学 C++
什么是vxlan
https://support.huawei.com/enterprise/zh/doc/EDOC1100195027
技术杂文选
0
点赞
评论
收藏
分享
2024-01-09 13:01
五邑大学 C++
交换机 M-Lag 与 DC-GW 独立双活
1. 前言交换机虚拟化技术,可以在逻辑上集成多台物理连接的交换机,实现拓宽虚拟交换机带宽、提升转发效率的目的,也可以在逻辑上将一台物理交换机虚拟为多台虚拟交换机,实现业务隔离、提升可靠性的目的。堆叠、M-LAG 是目前广泛应用的两种横向虚拟化技术,通过将多台交换设备虚拟为一台设备,共同承担数据转发任务,提升了网络的可靠性。堆叠、M-LAG 均为交换机横向虚拟化技术,具有提升可靠性、扩展带宽、实现负载分担的作用。<br>2. 堆叠堆叠(iStack)将多台交换机通过堆叠线缆连接在一起,使多台设备在逻辑上变成一台交换设备,作为一个整体参与数据转发。2.1 堆叠的作用1.扩展端口数量当接...
技术杂文选
0
点赞
评论
收藏
分享
2024-01-09 08:29
五邑大学 C++
什么是静态路由、OSPF、BGP
1. 什么是静态路由1.1 基本概念静态路由是一种网络路由配置方式,其中网络管理员手动配置路由信息,将特定的目标网络和下一跳路由器关联起来。这种配置方式是相对于动态路由而言的,动态路由是通过路由协议自动学习和更新路由表。在静态路由中,路由表的更新不是由路由协议自动完成的,而是由网络管理员手动输入或配置的。每个路由器上都有一个手动维护的路由表,其中包含了到达目标网络的路径。当网络拓扑发生变化时,管理员需要手动更新路由表以反映这些变化。1.2 静态路由的主要特点包括手动配置: 静态路由需要管理员手动配置路由信息,包括目标网络和下一跳路由器。这种手动配置方式提供了对网络流量的更精确控制。较少的网络开...
技术杂文选
0
点赞
评论
收藏
分享
2024-01-08 13:16
五邑大学 C++
什么是TOR与EOR、DC-GW、PE、IPBB
1. 数据中心架构设计比较(TOR 和 EOR)交换机的互联和数据通信的保证是设计一个数据中心的基本方面。当今的数据中心都是由 1RU 或者 2RU 的设备组成。因此可以将 1RU 或者 2RU 的交换机放到 racks 里面可以大大的节省空间,简化布线。典型的,ToR(Top of Rack)和EoR(End of Rack)是当前比较常见的数据中心架构设计。1.1 什么是ToR?ToR 就是将网络接入交换机放在一个服务器机架的上面。服务器直接连到接入交换机。每个服务器机架往往有一个或者两个接入交换机。然后所有的接入交换机都会连到机架里面的汇聚交换机。只需要少量的线缆从服务器机架连到汇聚层机...
技术杂文选
0
点赞
评论
收藏
分享
1
2
3
4
5
6
37
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务