【转载】浅谈大规模k8s集群关于events的那些坑
背景
随着k8s集群规模的增加,集群内的object数量也与日俱增,那么events的数量也会伴随其大量增加,那么当用户请求这些events的时候apiserver的负载压力就会增加,很可能造成apiserver处理请求延迟,首先需要分析一下请求events的几种方式:
1、用户通过kubectl list events
2、kubernetes-dashboard list events
3、admin用户直接在集群内list events
下面我会针对每一种情况提出一些可行的解决方案
一、用户通过kubectl list event
对于用户通过kubectl来list events,比如某个pod一直处于terminating的状态,用户需要排查原因,一般会describe该pod,然后可以查看到相应的异常events信息,这个操作就会list该pod的events,一般情况,k8s集群的events是存储在etcd中的,用户kubectl后会请求apiserver,然后apiserver会查询etcd,再将查询结果返回给用户。
优化方法:
首先我们可以考虑将events保存在其他地方,比如es等数据库,然后可以通过在k8s-proxy或者webhook对用户的event请求进行拦截,将用户的请求转至查询es或者其他数据库,然后再将查询结果转换为需要的方式返回给用户,这样一方面可以减轻apiserver的负载压力,而且还可以减轻etcd的压力,该方式经过验证是可性且有效的。
二、kubernetes-dashboard list events
在工作中,有段时间发现apiserver经常有延迟,经过监控分析发现dashboard list events的请求数量非常大,通过分析源码,发现dashboard中list其他object时,比如node,也会将该node上的所有pod的events都list一遍,这部分在dashboard界面上其实是没有显示的,我们可以考虑修改一下dashboard的代码,将这部分list events的请求禁止掉;另外可以和上面用户通过kubectl请求一样,我们将dashboard的请求拦截一下,转至查询es或者其他数据库。
三、直接在集群中list events
对于直接在集群中list events,目前还有比较好的解决方案,不过其实我们将上述两种情况解决后会有效地减轻apiserver的负载压力。https://blog.csdn.net/qq_40159308/article/details/114701703
【转载】浅谈大规模k8s集群关于events的那些坑的更多相关文章
- 大规模 K8s 集群管理经验分享 · 上篇
11 月 23 日,Erda 与 OSCHINA 社区联手发起了[高手问答第 271 期 -- 聊聊大规模 K8s 集群管理],目前问答活动已持续一周,由 Erda SRE 团队负责人骆冰利为大家解答 ...
- 面对大规模 K8s 集群,这款诊断利器必须要“粉一波”!
作者|段超 来源|尔达 Erda 公众号 背景 我们是一家做商业软件的公司,从一开始我们就把软件交付流程做的非常标准且简单,所有的软件都是基于我们的企业数字化平台 Erda(现已开源)来交付,底层基于 ...
- 用更云原生的方式做诊断|大规模 K8s 集群诊断利器深度解析
背景 通常而言,集群的稳定性决定了一个平台的服务质量以及对外口碑,当一个平台管理了相当规模数量的 Kubernetes 集群之后,在稳定性这件事上也许会"稍显被动". 我们可能经常 ...
- 万级K8s集群背后etcd稳定性及性能优化实践
背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- 万级K8s集群背后 etcd 稳定性及性能优化实践
1背景与挑战随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized
今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚. 错误现象:untime network not ready: Networ ...
- 国内k8s集群部署的几种方式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lusyoe/article/details/80217291前言总所周知,由于某种原因,通过官方的方 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
随机推荐
- 深度学习教程 | Seq2Seq序列模型和注意力机制
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...
- 认识 vh 和 vw 单位
1. 页面 html 结构 <header> <h1>欢迎来到米修在线</h1> <p>Lorem ipsum dolor sit amet conse ...
- 《图解UE4渲染体系》Part 1 多线程渲染
上回书<Part 0 引擎基础>说到,我们粗略地知道UE4是以哪些类来管理一个游戏场景里的数据的,但这仅仅是我们开始探索UE4渲染体系的一小步. 本回主要介绍UE4渲染体系中比较宏观顶层的 ...
- 攻防世界-MISC:Aesop_secret
这是攻防世界高手进阶区的的第九题,题目如下: 点击下载附件一,得到一个压缩包,解压后得到一张GIF动图,找个网站给他分解一下,得到如下图片 不知道是什么意思,所以就跑去看WP了,用010editor打 ...
- XCTF练习题---CRYPTO---safer-than-rot13
XCTF练习题---CRYPTO---safer-than-rot13 flag:no_this_is_not_crypto_my_dear 解题步骤: 1.观察题目,下载附件 2.打开后发现是个文件 ...
- [RPC学习]Dubbo+nacos实现动态更新内存RTree
1.背景 服务架构一般都是从 单体架构 -> 微服务架构 -> 分布式架构 的迭代,我上一家公司就是在业务发展到一定规模时,开始拆老的单体服务,按业务维度拆成多个微服务,服务之间用的是HT ...
- [题解] [AGC024F] Simple Subsequence Problem
题目大意 有一个 01 串集合 \(S\),其中每个串的长度都不超过 \(N\),你要求出 \(S\) 中至少是 \(K\) 个串的子序列的最长串,如果有多解,输出字典序最小的那组解. 由于 \(S\ ...
- Kubernetes容器之间的通信浅谈
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 作者: Matt Zand 和 Jim Sullivan 译者: 穿过生命散发芬芳F Kubernetes是一个容器化的解决 ...
- Java学习笔记-基础语法Ⅹ-进程线程
学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...
- centos7安装zabbix5.0
一.安装zabbix-server 操作系统:CentOS 7.5 1.首先关闭防火墙与SElinux 关闭防火墙 systemctl stop firewalld&&systemct ...