kubernetes
文章平均质量分 87
Seaiio
永远是个初学者
展开
-
kubelet源码分析 kuberuntime的syncpod、killpod函数(二)
这篇介绍如何killsandbox和删掉容器原创 2023-06-06 17:07:05 · 853 阅读 · 0 评论 -
kubelet源码分析 kuberuntime的syncpod、killpod函数(一)
在 kubelet 源码中,syncPod 函数位于 kuberuntime 包中,其作用是同步 Pod 的状态和运行状态。它是 kubelet 的核心函数之一,负责监视和管理 Pod 的生命周期。具体而言,syncPod 函数执行以下任务:原创 2023-06-05 15:19:01 · 1147 阅读 · 0 评论 -
kubelet源码分析 v1.27.x新特性 InPlacePodVerticalScaling(就地垂直伸缩)
InPlacePodVerticalScaling(就地垂直伸缩)是 Kubernetes 中v1.27.1的一个特性,它允许在不重启 Pod 的情况下动态调整 Pod 中容器的资源限制(Resource Limits)。传统上,在 Kubernetes 中更新 Pod 的资源限制需要重新创建 Pod,这会导致应用程序中断和服务不可用的情况。但是,通过使用 InPlacePodVerticalScaling,可以实现对 Pod 进行资源限制的动态更新,而无需重新创建 Pod。原创 2023-05-30 16:34:28 · 1623 阅读 · 0 评论 -
kubelet源码分析 status_manager状态管理器篇
status_manager(状态管理器)是 Kubernetes 中的一个组件,负责管理 Pod、Node、Endpoint 等资源的状态。状态缓存管理:status_manager 维护一个本地缓存,用于存储集群中各个资源的状态信息,如 Pod 的运行状态、Node的健康状态等。通过定期从 API Server 获取最新的状态,并将其存储在缓存中,可以提高性能和响应速度。状态更新和同步:status_manager 负责从 API Server 获取最新的状态信息,并将其更新到本地缓存中。原创 2023-05-25 17:39:28 · 1174 阅读 · 0 评论 -
kubelet源码分析 添加 /删除pod (SyncPod、SyncTerminatingPod、SyncTerminatedPod)篇
这篇文章是当pod_workers.go流程结束后,重新触发kubelet.go文件的SyncPod、SyncTerminatingPod、SyncTerminatedPod函数进行处理。这三个函数主要是对kubelet这一层最后的校验,然后将要调用CRI部分进行创建容器了。原创 2023-05-24 15:19:38 · 1418 阅读 · 0 评论 -
k8s 基于MutatingWebhookConfiguration实现node超卖和sidecar注入
k8s 资源对象实现超卖基于MutatingWebhookConfiguration实现node超卖和sidecar注入原创 2023-05-19 16:23:13 · 2397 阅读 · 0 评论 -
kubelet源码分析 LIST&WATCH源码
kubelet源码分析 LIST&WATCH 是一种用于监视资源变化的机制使用 List&Watch 可以有效地监视 Kubernetes 中的各种资源,包括 Pod、Service、Deployment、ConfigMap 等等。通过 List&Watch,开发人员可以及时了解 Kubernetes 中各种资源的状态和变化情况,从而更好地管理和维护 Kubernetes 集群。本地开发中,用到它的地方很多,也可以通过这个功能开发很多组件。原创 2023-04-27 15:35:25 · 1020 阅读 · 0 评论 -
k8s 源码分析 informer篇
k8s 源码分析 informer篇informer 是 client-go 中的核心工具包,informer 其实就是一个带有本地缓存和索引机制的,可以注册 EventHandler 的 client 本地缓存被称为 Store,索引被称为 Index。使用 informer 的目的是为了减轻 apiserver 数据交互的压力而抽象出来的一个 cache 层,客户端对 apiserver 数据的 读取和监听操作都通过本地 informer进行。原创 2023-04-24 17:04:07 · 1594 阅读 · 1 评论 -
linux cgroup、kubernetes limit
linux cgroup、kubernetes limitCgroups功能的实现依赖于四个核心概念:子系统、控制组、层级树、任务。kubernets设置limit最终设置在了哪里原创 2023-01-11 16:12:51 · 656 阅读 · 0 评论 -
kubelet源码分析 housekeeping 定时清理
kubelet源码分析 housekeeping 定时清理。housekeeping定时清理所有pod,两秒触发一次清理原创 2023-01-10 15:21:57 · 971 阅读 · 0 评论 -
kubelet源码分析 syncLoopIteration(二) plegCh、syncCh、relist
kubelet源码分析 syncLoopIteration(二) plegChconfigCh、syncCh、plegCh管道的由来和执行流程原创 2022-12-16 17:30:22 · 938 阅读 · 0 评论 -
kubelet源码分析 syncLoopIteration(一) configCh
kubelet源码分析 syncLoopIteration函数有四个chan管道。分别是configCh、plegCh、syncCh、housekeepingCh。这篇主要聊一下这四个管道的由来。原创 2022-12-16 16:25:06 · 899 阅读 · 2 评论 -
kubelet源码分析 添加 pod
kubelet源码分析,添加新的pod,syncpod,addPod原创 2022-12-01 17:21:41 · 804 阅读 · 0 评论 -
kubelet源码分析 更新/调谐/移除/探针 pod
kubelet源码分析 kubelet.go更新/调谐/移除/探针 pod updatePod原创 2022-11-25 17:59:52 · 856 阅读 · 0 评论 -
kubelet源码 删除pod pod_workers.go(三)
kubelet源码 pod_workers.go分析原创 2022-11-24 17:02:42 · 1005 阅读 · 0 评论 -
kubelet源码 删除pod pod_workers.go(二)
kubelet源码 删除pod(二)原创 2022-11-22 14:49:58 · 775 阅读 · 0 评论 -
kubelet源码 删除pod(一)
kubelet删除pod源码分析原创 2022-11-22 14:41:53 · 2508 阅读 · 0 评论 -
dlv调试kubelet
dlv调式kubelet原创 2022-11-22 14:35:15 · 701 阅读 · 0 评论 -
controller-informer
informer流程原创 2022-11-22 14:33:05 · 513 阅读 · 0 评论 -
go 使用configmap通过自建抢占式锁实现 主备
组件背景程序内已经使用了k8s的client端,为了减少其他组件的依赖,所以不使用redis和etcd。采用configmap实现。因为configmap没有锁机制,所以要自己写这个机制,同样ttl机制也需要代码实现。通过corn定时任务,每50秒所有组件抢占一次锁,如果原有leader是default或已经50秒没有更新ttl时间。则进行抢占。否则退出此次任务。每20秒进行一次ttl的更新。确保主一直在工作,同时有备进行争抢。需要实现的功能抢占式锁主备ttl检查每次验证后确保服务只启动一个,原创 2022-03-22 16:49:17 · 518 阅读 · 0 评论