oceanweave
这个作者很懒,什么都没留下…
展开
-
【k8s网络】梳理cni发展脉络
设备非专业术语作用Docker0网桥理解为二层交换机,处理包头为 mac 的数据包网络栈存储用于通信的网络设备和规则等(网卡、路由表、iptables规则等)一个 net namespace 可以简单理解为,一个主机–net=host,表示容器共享宿主机的网络栈(此时可理解为两个人共用一套设备),此时可提高通信效率,但可能会端口冲突veth pair网线用于联通不同的 net namespace,可以理解为连接两个主机间的网线。原创 2024-03-25 17:28:33 · 1281 阅读 · 0 评论 -
【k8s-device plugin】如何编写 k8s device plugin
Kubernetes开发知识–device-plugin的实现[Gaia Scheduler] gpu-manager 启动流程分析[Gaia Scheduler] gpu-manager 的虚拟化 gpu 分配流程以 gpu-manager 项目为例,关注了两种资源 vcore 和 vmemory(我为其命名为 dfy.com/vgpu-core 和 dfy.com/vgpu-memory,项目中不是这个名字哈)所以考虑一下几个方面,以 vcore 资源为例。原创 2023-01-05 17:53:09 · 1862 阅读 · 0 评论 -
【K8S源码之Pod漂移】整体概况分析 controller-manager 中的 nodelifecycle controller(Pod的驱逐)
有的话,进行 Pod 的逐个驱逐,检查 Pod 是否有该 Taint 的 toleration,有的话,就根据 toleration 设置 pod 的定时删除;zonePodEvictor 后续用于该 zone 中失联的 Node,用于 Node 级别驱逐(就是驱逐 Node 上所有 Pod,并设置为 evicted 状态,此部分参见)每个 zone 有不同数量的 Node,根据该 zone 中 Node 失联数量的占比,设置不同的驱逐速率。TainManager 的驱逐逻辑,看代码不难理解,大概说明。原创 2023-08-18 18:02:00 · 1229 阅读 · 0 评论 -
【k8s源码分析-Apiserver-2】kube-apiserver 结构概览以及主体部分源码分析
假 设 所 有 的 认 证 器 都 被 启 用 , 当 客 户 端 发 送 请 求 到 kubeapiserver服务,该请求会进入Authentication Handler函数(处理认 证相关的Handler函数),在Authentication Handler函数中,会遍历已启用的认证器列表, 尝试执行每个认证器, 当有一个认证器返回 true时,则认证成功,否则继续尝试下一个认证器。当客户端发起一个请求,经过认证阶段时,只要有一个认证器通过,则认证成功。在客户端请求通过认证之后, 会来到授权阶段。原创 2023-12-25 17:01:01 · 1259 阅读 · 0 评论 -
【k8s源码分析-Apiserver-1】理解 apiserver 的结构(AggregatorServer、KubeAPIServer、ApiExtensionsServer)
Prometheus 项目与Kubernetes项目一样,也来自于 Google 的Borg体系,它的原型系统,叫作 BorgMon,是一个几乎与 Borg 同时诞生的内部监控系统。而 Prometheus 项目的发起原因也跟 Kubernetes 很类似,都是希望通过对用户更友好的方式,将 Google 内部系统的设计理念,传递给用户和开发者。作为一个监控系统,Prometheus 项目的作用和工作方式,其实可以用如下所示的一张官方示意图来解释。可以看到,Prometheus 项目工作的核心,是。原创 2023-12-06 16:11:43 · 287 阅读 · 0 评论 -
【K8S内外部版本】一文了解 Kubernetes 资源内部版本internal与外部版本v1等及Schema注册
以Pod资源代码定义为例,代码示例如下。原创 2024-03-05 11:03:41 · 1155 阅读 · 0 评论 -
【K8S类型系统】一文梳理 K8S 各类型概念之间的关系(GVK/GVR/Object/Schema/RestMapper)
Group 组、Version版本、Namespace 命名空间,这些都很容易理解,都是为了隔离,资源版本隔离(Group、Version)和用户资源隔离(Namespace)Kind 对象类型,如 Kind=Sh 对应 sh 类型文件,Kind=Doc 对应 doc 类型文件Resource 可以理解为 Kind 的含义补充,用于获取真正的资源对象;GVK 专注于类型定义,确定是哪种资源对象,GVR 专注于获取资源对象或对资源对象进行操作;原创 2024-03-01 17:18:07 · 1046 阅读 · 1 评论