Apiserver 中缓存层 Cacher 的实现
因为前段时间集群遇到了 Too large resource version 的问题,感觉有必要理解下 Apiserver 中的缓存层是怎么工作的,以及其事件窗口是怎么设计的。本文参考的 K8s 版本为 1.16。缓存层主要设计到三个组件 Cacher、watchCache、cacherWatcher,本文不会面面俱到的介绍,重在理解整个过程。 分析过程以 Deployment 资源为例,...
因为前段时间集群遇到了 Too large resource version 的问题,感觉有必要理解下 Apiserver 中的缓存层是怎么工作的,以及其事件窗口是怎么设计的。本文参考的 K8s 版本为 1.16。缓存层主要设计到三个组件 Cacher、watchCache、cacherWatcher,本文不会面面俱到的介绍,重在理解整个过程。 分析过程以 Deployment 资源为例,...
前段时间集群内的 elastic-operator 一直报错,报错跟下面类似,都是报 Too large resource version 的问题。记录下排查过程和相关知识点。 E0513 19:45:35.671005 598 reflector.go:178] object-"kube-system"/"kube-router-token-4px26": Failed to li...
使用 xfs_quota 可以实现磁盘容量隔离,本文介绍一下 xfs_quota 工具的使用 准备 分为未挂载设和已挂载设备两种,对于未挂载设备,在挂载设备的时候指定 prjquota 就可以了,比如: root@ubuntu:~# mount -o prjquota /dev/loop5 /data/volumes/xfs32m root@ubuntu:~# mount | grep l...
目录 Cache State Machine schedulerCache 结构体及其 Cache 接口实现 清空 Assume 过期的 Pod K8s调度器的SchedulerCache是其工作的核心,用来缓存所有已经调度过的pod,这些pod按照Node来进行划分,每个Node包含一个NodeInfo,包含一个该节点上的所有的pod。本文基于K8s1.14分析下Sche...
众所周知,在 K8s 的 informer 缓存里,通过添加 indexer 能加快查询,这里看看为什么。 以pv controller为例,在初始化pv controller的时候,创建了两份本地cache,这个cache实际上跟informer cache工作原理一致,其中一个添加了索引,看一下这个缓存是怎么使用,以及怎么实现的。 controller := &Persiste...
这里的client-go的监控是指,对client-go的请求时延、QPS等的监控,任何第三方控制器可以使用client-go来向K8s apiserver发送请求,并实现对client-go的监控。本文以k8s 1.14为例,介绍如何实现client-go的监控。 client-go监控接口 client-go提供的监控接口定义在client-go/tools/metrics/metric...
目录 main 函数 Local Controller 主流程 生成 pv 缓存 发现 pv 删除 pv local volume provisioner,一个提供本地存储的组件,主要是不用管理员手动创建pv 了,可以根据目录自动发现并创建 pv,梳理一下其工作过程。 main 函数 main 函数做的工作不多,就...
kubelet的 syncPod方法 是同步Pod的主要方法,在这个方法的最后调用了kl.containerRuntime.SyncPod方法,其实现是kubeGenericRuntimeManager.SyncPod,其代码目录为:pkg/kubelet/kuberuntime/kuberuntime_manager.go 本文按照代码顺序,依次介绍 CRI(服务端/客户端)、kubeG...
目录 CSI Spec中的RPC接口 Identity Service Controller Service Node Service In Tree CSI Plugin 关于通信方式 推荐的部署以及开发方式 开发CSI驱动 Kubernetes CS...
目录 求和、求平均值 grep 显示前后命令 循环读取文件的内容 查看磁盘读写io nc 网络测试命令 变量的默认值 安装包管理 sed 命令 ansible 基本用法 nslookup 测试域名解析 ssh 配置免密登录 使用 tc 模拟网络丢包和时延 vi 复制与删除 查看文件被哪个进程占用 set -euxo pipefai...