腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
返回腾讯云官网
k-cloud-labs
https://k-cloud-labs.github.io/#
专栏成员
举报
74
文章
42844
阅读量
16
订阅数
订阅专栏
申请加入专栏
全部文章(74)
容器(16)
编程算法(16)
数据(13)
缓存(11)
kubernetes(10)
内存(10)
容器镜像服务(9)
对象(9)
客户端(9)
http(8)
api(7)
watch(6)
集群(6)
etcd(5)
服务(5)
服务端(5)
配置(5)
事件(5)
工作(4)
java(3)
go(3)
html(3)
jenkins(3)
bug(3)
get(3)
gpu(3)
requests(3)
系统(3)
优化(3)
原理(3)
php(2)
bash(2)
node.js(2)
json(2)
android(2)
linux(2)
bash 指令(2)
SSL 证书(2)
https(2)
插件(2)
解决方案(2)
连接(2)
日志(2)
设计(2)
同步(2)
源码(2)
重构(2)
c 语言(1)
jquery(1)
数据库(1)
ide(1)
git(1)
github(1)
nginx(1)
日志服务(1)
命令行工具(1)
全站加速网络(1)
渲染(1)
存储(1)
开源(1)
运维(1)
jdk(1)
yum(1)
面向对象编程(1)
grep(1)
tcp/ip(1)
单元测试(1)
gcc(1)
socket编程(1)
数据分析(1)
数据结构(1)
processing(1)
迁移(1)
case(1)
container(1)
error(1)
event(1)
handler(1)
header(1)
list(1)
return(1)
遍历(1)
并发(1)
部署(1)
测试(1)
队列(1)
服务器(1)
管理(1)
继承(1)
基础(1)
脚本(1)
接口(1)
进程(1)
镜像(1)
开发(1)
模型(1)
内存泄漏(1)
内核(1)
排序(1)
权限(1)
索引(1)
网络(1)
性能(1)
序列化(1)
异常(1)
搜索文章
搜索
搜索
关闭
调度器性能调优系列
遍历
插件
数据
性能
优化
线上调度器触发资源使用量报警,在定位问题的过程中又系统性的看了最新的 scheduler framework 的实现,以及涉及到的一些用来优化性能的 PR,这里做一个系统性的总结,分享给有类似问题或者需求的同志们。
李鹤
2024-08-18
138
0
f**king k8s - pod namespace
对象
服务
配置
设计
nginx
太长不看版:在拦截 pod 创建请求时,在业务逻辑中不要直接依赖 admission request 的 pod namespace 属性。可以使用 adminssion request 的 namespace,这个属性是有值的,从请求的 path 中解析得来的。
李鹤
2024-05-23
83
0
k8s watch 丢事件 - 3
事件
数据
watch
服务端
客户端
v1.27 的 K8s,在 kube-apiserver 的日志中会看到 “etcd event received with PrevKv=nil” 的字样,资源对象被删除后在 Etcd 中已经不存在了但在 Reflector store 中仍然存在,可以在 Informer 或者 watchCache 中看到对应的对象,依赖 Informer 的组件也不会感知到资源对象被删除,通过 List API 设置 RV=“0” 去 kube-apiserver 的 watchCache 中获取的话也可以看到已经被删除的对象仍然存在。
李鹤
2024-03-23
180
0
k8s watch 丢事件 - 2
watch
客户端
事件
数据
异常
v1.27 的 K8s,在 kube-apiserver 的日志中会看到 “etcd event received with PrevKv=nil” 的字样,资源对象被删除后在 Etcd 中已经不存在了但在 Reflector store 中仍然存在,可以在 Informer 或者 watchCache 中看到对应的对象,依赖 Informer 的组件也不会感知到资源对象被删除,通过 List API 设置 RV=“0” 去 kube-apiserver 的 watchCache 中获取的话也可以看到已经被删除的对象仍然存在。
李鹤
2024-03-10
314
0
k8s watch 丢事件 - 1
对象
事件
数据
原理
watch
Kube-apiserver 提供了 Watch API 来支持实时接收资源对象变化的功能,也是 Informer 实现的基础,那么我们通过 Watch 或者 Informer 本地缓存拿到的数据是否真的和 Etcd 中的数据一致呢?
李鹤
2024-03-03
292
0
kube-apiserver 又 Panic 了 - handler
header
并发
对象
接口
handler
Kube-apiserver 在处理外部请求时发生不可恢复的报错,直接 Fatal 退出运行。看日志调用堆栈,会发现 concurrent map iteration and map write 的字样。这是 golang 检测到有对 map 的并发读写后返回的一个 fatal 报错的内容,无法通过 recover 捕捉并恢复。
李鹤
2024-02-05
186
0
k8s 越来越复杂了吗?
客户端
内存
排序
数据
对象
这个约定存在的原因是为了保持开启 WatchCache 功能前后 list 请求返回结果的一致性。在关闭 WatchCache 功能的情况下,请求直接透传给 Etcd,此时返回的结果就是字母升序排列的。
李鹤
2024-01-23
246
0
k8s: 到底谁才是草台班子?
服务器
集群
客户端
连接
内存
大家在对 2023 年诸多互联网公司故障的总结中多次提到了控制 “爆炸半径”,几乎都在说缩小集群规模,那除了缩小集群规模外还有没有其他办法呢?如果一出问题就通过缩小规模去解决,多少会显得有点不够专业(草台班子)。k8s 已经经历了九年半的发展,众多的终端用户在以什么样的方式使用 k8s,即便社区高手如云,也很难把所有使用场景都考虑到并且处理好,但也不至于差到连我们这群"草台班子"都能想到的一些最基本的问题(比如控制爆炸半径)都想不到。比起把集群搞大出问题的人,反而是在出问题后只会喊控制集群规模的那些 k8s 相关的云原生专家们,那些 k8s 集群管理员们,更像是草台班子。(并没有说 k8s 等于云原生的意思,但只要做的事情和 k8s 沾点边就号称云原生,这是事实)
李鹤
2024-01-07
447
0
一条 Watch 请求的一生
event
watch
服务端
客户端
数据
前面已经通过一个系列来介绍 kube-apiserver cache 相关内容,本篇旨在通过分析 Watch 请求的生命周期把前面涉及到的关键内容串联起来,系统的描述在每个阶段都涉及到哪些关键内容,方便更直观的了解之前每一篇在整个过程中的位置和作用。
李鹤
2023-12-28
439
0
kube-apiserver 连接数也会影响内存?
服务端
集群
客户端
连接
内存
之前从资源对象的获取方式、序列化、深拷贝的角度分别分析了对 kube-apiserver 内存使用量的影响以及社区是如何进行优化的,这一篇围绕网络连接展开分析其对 kube-apiserver 内存的影响,以及这中间涉及到的其他相关问题。
李鹤
2023-12-20
479
0
从容器调度到降本增效
容器
服务
工作
基础
系统
前一篇中介绍了大规模容器平台的资源预算、精算、核算,本篇围绕容器调度开展。容器调度旨在有效地协调和管理系统中的有限资源,在保障服务 SLO 的前提下,满足任务和服务的需求。对于从事过容器调度相关工作的朋友来说,对超卖一定不陌生。容器平台一般都会对运行在其中的服务做一定程度的超卖,来达成平台本身的盈利目标。
李鹤
2023-12-12
314
0
让子弹飞一会儿
容器
运维
工作
管理
集群
近期互联网故障频发,各大公众号各抒己见,指点江山,激扬文字,颇有百花齐放,百家争鸣的味道。一众吃瓜群众也是对此乐此不疲,津津乐道。
李鹤
2023-12-07
196
0
kube-apiserver 内存优化进阶
缓存
对象
内存
序列化
优化
前面我们已经对 kube-apiserver 内存消耗 进行了阐述,文中最后提到了使用流式的请求来支持 List 的效果,从而实现对于单个请求来说,空间复杂度从 O(n) 转换成 O(1),也讲述了其原理和流程。本篇从更细节的角度分析其在内存分配,序列化等方面做的进一步优化。
李鹤
2023-12-03
679
0
从故障中我们学到了什么?
容器
服务
集群
设计
系统
继阿里云之后,滴滴崩了上了热搜,故障原因了解了一些,会在文章最后谈到。近期国内多个公司发生了 P0 事故,当然也包括我司,只不过可能不出名,很多人不知道而已。本文聊一聊我对这些故障的理解。首先做个声明,下文都是根据个人所了解到的信息以及个人的认知所写,并没有消遣的意思,可能会有一些偏激,如果问题,欢迎互喷。
李鹤
2023-12-03
307
0
从 ListWatch 到 WatchList
对象
服务端
客户端
事件
数据
前面我们已经对 kube-apiserver 内存消耗进行了阐述,文中最后提到了使用流式的请求来支持 List 的效果,从而实现对于单个请求来说,空间复杂度从 O(n) 转换成 O(1),这篇主要就分析描述其实现原理。
李鹤
2023-11-11
517
0
Kubernetes 陈年老 bug - Stale Read
kubernetes
缓存
bug
服务端
数据
前两篇已经介绍过 Informer 和 Cacher 的实现,也介绍了其中存在的一些问题,本篇主要针对 Stale read 问题展开,分析新版 Informer & Kube-apiserver 中是如何解决这个问题的。
李鹤
2023-11-04
254
0
kube-apiserver 又 OOM 了?
缓存
客户端
内存
数据
优化
前一篇已经介绍了 Informer 的实现,Informer 对 kube-apiserver 发起了 list 和 watch 请求。我们知道大规模集群下,kube-apiserver 会成为瓶颈,尤其在内存方面,相信很多人也遇到过 kube-apiserver OOM 等问题(碰巧的是最近线上连续出现两次 kube-apiserver OOM 的问题)。本篇主要讲 kube-apiserver 中 Informer 需要用到的两个接口 list 和 watch 的实现。
李鹤
2023-10-28
608
0
你真的搞懂 Informer 了吗?
对象
内存
事件
数据
同步
Informer 作为 client-go 的核心,网上有众多的源码分析,原理解析相关文章,可以教给大家如何"正确"的使用 Informer。当然其前提是在 Informer 本身逻辑没问题的前提下,本篇旨在为大家指出几个 Informer 里面长期存在甚至现在仍然存在的问题。
李鹤
2023-10-16
502
0
Kubernetes 陈年老 bug - 绑核
容器
kubernetes
bug
container
重构
最近遇到一个线上问题,使用了 lxcfs 的容器,跑在 cgroup v2 的机器上时,在容器内使用 top 或者 htop 看到的核数和 cpu 使用率有问题。虽然根本问题在 lxcfs 的实现,但问题最终的触发与 cpuset 和 cpu.max 的设置有关。这里并不会去介绍这个问题本身,而是由问题引发的思考,我们真的了解 k8s 里面的绑核行为吗,你以为你以为的就是你以为的吗?
李鹤
2023-09-16
517
0
high QPS for configmap GET requests in kube-apiserver - 3
缓存
get
requests
集群
数据
线上 k8s 集群 kube-apiserver 的 ConfigMap Get 操作 QPS 较高,且同时间段 Etcd 中 ConfigMap 资源的 Get 操作 QPS 也较高,看日志多数请求的发起方是 kubelet。对应 k8s v1.22.13 版本代码,同时在 v1.28.0 测试现象相同。kube-apiserver 日志大致如下:
李鹤
2023-09-09
188
0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档