知乎Kubernetes稳定性建设实践:云原生架构的演进与优化

news/2025/3/9 12:20:02/文章来源:https://www.cnblogs.com/weifegn/p/18757741

知乎,作为国内知名的知识分享平台,其背后复杂的架构和庞大的用户量对技术团队提出了极高的要求。近年来,知乎在云原生和Kubernetes(K8S)方面的实践,尤其是稳定性建设方面的经验,值得深入探讨和学习。本文将基于知乎核心架构平台工程师赵禹的分享,详细解析知乎在Kubernetes稳定性建设中的关键步骤和取得的成果。

知乎云原生架构的演进
从2016年开始,知乎的云原生架构经历了从业务容器化到混合云的多个阶段。最初,知乎使用Mesos作为容器编排工具,随后迁移到Kubernetes,实现了中间件和数据库的容器化,并引入了ServiceMesh。目前,知乎的Kubernetes集群数量超过10个,分为基础组件集群、业务集群以及训练和推理服务专用集群,整体架构分为应用层、组件层、OS层和基础组件层。

Kubernetes稳定性建设的挑战
在Kubernetes的稳定性建设过程中,知乎遇到了多种挑战,包括集群的容灾能力不足、资源碎片化、紧急增加机器时装机速度慢、Kubernetes问题排查困难、权限管理混乱、调度不均衡、资源干扰过大、缺乏审计操作无法追溯、告警过多等问题。

稳定性建设的关键阶段和案例
知乎的Kubernetes稳定性建设经历了四个主要阶段:

Kubernetes集群改造:这一阶段主要关注Apiserver和DNS的稳定性。通过改造CoreDNS代码,使其在Apiserver挂掉时能够缓存数据,并使用本地DNS组件,确保DNS的稳定性。

系统能力改造:知乎自研了多云管控平台,收敛权限,提升人效,并实现了多集群的可观测性。

资源兜底能力改造:包括多云弹扩能力和镜像多活组件的自研,确保在在线业务利用率过高时能够伸缩节点兜底。

基础组件能力改造:知乎优化了调度器,降低了告警频率,并自研了自愈组件(Joba),通过NPD组件的二次开发,实现了自愈规则和故障SOP。

收益与展望
通过这些改造,知乎在Kubernetes的稳定性方面取得了显著收益,包括自愈能力、伸缩弹扩、核心组件的限流与兜底、隔离能力、多云管控能力以及负载均衡与隔离能力。资源使用方面,改造后的集群在内存使用和均衡性方面有显著提升。同时,知乎还实现了精准的告警与监控,以及多云事件中心的可观测性。

展望未来,知乎计划在网络可观测性、数据集调度和多云多集群基础能力支持方面进行进一步优化。

结语
知乎在Kubernetes稳定性建设方面的实践,不仅展示了其在云原生领域的深厚技术积累,也为行业提供了宝贵的经验。通过不断的优化和改造,知乎成功应对了大规模集群管理的挑战,为业务的稳定和高效运行提供了坚实的技术保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/895092.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOMMU和IOVA

IOMMU和IOVA 默认情况下,任何硬件都可以访问整个系统,因此它可以在任何地方执行DMA 事务。这有许多安全隐患。例如,流氓和/或不可信进程(包括在VM (虚拟机)内运行的进程)可能使用硬件设备来读写内核空间,和几乎其他任何存储位置。为了解决这个问题,现代系统配备了输入输出…

linux无法连接宿主机网络问题

很奇怪,之前我是可以连接宿主机互联网的,突然有一天不行了, 没找到具体的原因, 网上找了一下怎么解决,网络就又好了, 先记录一下,有时间在研究。 1、在虚拟机中创建的“电脑”上,右键选则setting(设置)。 2、选择NAT模式,然后点击Edit--》virtual network editor,点…

Node.js 路由

我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。 因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)? 我们需要的所有数据都会…

SageMath 9.3软件下载与安装教程

1、安装包 扫描下方二维码关注「软知社」,后台回复【051】三位数字即可免费获取分享链接,无广告拒绝套路; 2、安装教程(建议关闭杀毒软件)双击解压安装包安装,弹窗安装对话框点击下一步选择I accept,点击下一步默认,点击下一步默认文件夹,点击下一步安装路径选择D盘,点…

GoLand 2024软件下载与安装教程

1、安装包 扫描下方二维码关注「软知社」,后台回复【048】三位数字即可免费获取分享链接,无广告拒绝套路; 2、安装教程(建议关闭杀毒软件)下载并解压压缩包,双击exe文件安装,弹窗安装对话框点击下一步创建桌面快捷方式,点击下一步默认,点击安装等待安装过程运行软件,点…

VisualStudio快速更改方法签名

右键——快速操作和重构 更改方法签名 更改签名中,即可进行添加或删除 *****有道无术,术尚可求;有术无道,止于术。*****

eclipse xml Indent using spaces not work /eclipse xml 使用空格缩进功能未生效问题解决

eclipse xml Indent using spaces not work eclipse xml 使用空格缩进功能未生效问题解决 设置xml格式化配置Line width: 设置每行宽度Line width设定为80到100个字符。 Split multiple attributes each on a new line: 标签的每个属性都单独一行显示 Preserve whitespace in t…

【多线程】AQS详解

AQS是什么 AbstractQueuedSynchronizer是一个抽象的队列同步器,AQS利用模板方法模式解决了开发者在实现同步器时的复杂问题,提供了一个通用的加锁解锁框架。 AQS执行原理 AQS为实现的同步器提供了通用的执行框架,定义了对资源state的获取和释放流程。AQS核心思想是在CLH锁的…

.NET 8 AOT

AOT是个防止反编译的好办法 都来看看怎么用吧~ 1.需要安装C++的桌面开发2.新建项目,选择控制台3.确认 <PublishAot>true</PublishAot> 是否为true4.发布release版本优点: 1. AOT 会生成一个自包含的应用程序,并且已提前 (AOT) 编译为本机代码。原生 AOT 应…

京准电钟:GPS北斗时间服务器的作用与应用

京准电钟:GPS北斗时间服务器的作用与应用京准电钟:GPS北斗时间服务器的作用与应用 京准电钟:GPS北斗时间服务器的作用与应用 京准电钟官微——ahjzsz GPS北斗时间服务器是一种利用全球卫星导航系统(GPS为美国系统,北斗为中国系统)提供高精度时间同步服务的设备,其核心作…

制造未来:大型车厂焊接站从PROFIBUS跃迁至PROFINET引爆智能革命

某大型生产现场焊接站的协议改造PROFIBUS从转PROFINET从网关一、背景介绍 某大型汽车制造厂拥有多个生产线,用于车身焊接、喷涂及装配等工序。其中,一条关键的焊接生产线长期采用PROFIBUS协议进行数据传输和设备控制。随着生产自动化程度的提升和工业4.0战略的推进,厂方决定…

信创数据库在金融行业的五大应用场景

信创产业作为国家信息技术创新发展的重要支撑,近年来取得了显著进展。其中,信创数据库在金融行业的应用日益广泛,为金融机构的数字化转型和安全稳定运行提供了有力保障。信创数据库凭借其自主可控、安全可靠等优势,在金融行业多个关键领域发挥着重要作用,不仅提升了金融机…