SRE 云原生运维 可靠性工程 Linux Kubernetes
聚焦站点可靠性工程(SRE)与云原生运维实践,记录 Linux 系统运维、监控告警、容器编排、CI/CD 与自动化运维的深度技术指南。

IaC 不测试就上生产?Terraform 四层验证体系让凌晨告警少 80%

概述 去年接手一个项目,前同事写的 Terraform 代码跑得好好的,某个周一上午他改了一行 instance_type,terraform plan 显示正常,apply 也成功了。然后业务炸了。 原因不是代码写错,是那个 instance_type 对应的 AMI 在目标可用区不存在。plan 能过是因为它只检查"逻辑上通不通",不检查"云上到底有没有这个资源"。这种问题在静态检查阶段就能拦住,但那个团队的 IaC 流水线里只有 terraform fmt && terraform validate,连 tflint 都没装。 很多人对 IaC 测试的认知停留在"跑一下 plan 看看输出对不对"。这不叫测试,这叫碰运气。Terraform 不是事务系统——apply 失败后基础设施会停在一个半成品状态,比没改之前更糟。我在多个生产环境中踩过这个坑,最后总结出一套四层验证体系:静态检查 → 安全扫描 → 计划验证 → 集成测试,从代码提交到生产部署逐层拦截问题。本文拆解每一层的工具选型、配置方法和踩坑细节。 本文假设你已经了解 Terraform 基本用法。如果不熟悉,先看 相关文章:Terraform 基础设施即代码入门 和 相关文章:状态文件丢了怎么办:Terraform State 灾难恢复与生产级后端架构。 一、为什么 IaC 需要测试体系 先说清楚一个认知误区:terraform plan 通过 ≠ 代码正确。 terraform plan 只验证两件事:HCL 语法是否合法、资源依赖关系是否合理。它不验证: instance_type 在目标区域是否可用(t2.nano 在某些区域不存在) 安全组规则是否暴露了不该暴露的端口(0.0.0.0/0 开 22 端口) IAM 策略是否过宽(Action: "*", Resource: "*" 这种"上帝权限") 资源命名是否符合团队规范(一个 VPC 叫 prod-vpc 另一个叫 test_vpc_01) 模块间参数传递是否类型匹配 这些全是生产事故的高频原因。我在某电商平台做过统计:37% 的 IaC 相关故障,terraform plan 阶段没有任何报错,是 apply 后才暴露的。...

August 1, 2026 · 11 分钟 · 2227 字 · 徐保金

可靠性度量不是堆指标:用四层模型把'系统稳不稳'变成可决策的数字

概述 凌晨三点,你被告警吵醒。爬起来一看:CPU 正常、内存正常、Pod 也在跑,但用户投诉说"系统卡得用不了"。你打开 Grafana 面板,画了一堆曲线,却说不清楚——这到底算不算故障? 这个场景,我在多个企业客户的 SRE 咨询中反复遇到。核心问题不是监控不够多,而是度量体系设计错了方向:我们一直在监控"系统内部的指标",而不是"用户感受到的服务质量"。 曾经在一次某出行平台的故障复盘中,团队发现一个讽刺的事实:告警系统在故障发生 12 分钟后才触发,而用户在故障发生后 30 秒就已经开始投诉了。原因很简单——告警基于 CPU 使用率超 80% 触发,但实际故障是数据库连接池耗尽,CPU 才 35%,根本没碰阈值。 可靠性度量的本质,是把"系统稳不稳"这个问题,从主观感觉变成可量化的数字。这篇文章不讲 SLI/SLO 的基础概念(这些在 相关文章:SRE核心理念:SLI、SLO与错误预算 中已经讲透了),而是聚焦于:如何从零设计一套完整、可落地、能驱动决策的可靠性度量体系。 为什么传统监控体系不能回答"系统稳不稳" 先说结论:传统监控体系回答不了"系统稳不稳",因为它度量的对象错了。 传统监控的三个盲区 盲区一:监控的是资源,不是用户体验 大多数团队的监控面板长这样:CPU 折线图、内存折线图、磁盘 IO 折线图、网络流量折线图。这些指标反映的是"服务器忙不忙",而不是"用户爽不爽"。 举个真实的例子:某电商平台的订单服务,CPU 使用率常年 70%,运维觉得"不太对劲",计划扩容。但实际上 P99 延迟 120ms,请求成功率 99.97%,用户体验完全没问题。另一个缓存服务,CPU 才 20%,看起来"很健康",但缓存命中率从 95% 掉到 60%,导致数据库被打爆,用户实际体验已经很差了。 盲区二:没有"好"和"坏"的量化边界 “CPU 80% 算好还是算坏?"——这个问题在传统监控体系里没有答案。80% 可能是正常的批处理负载,也可能是即将打满的前兆。没有 SLO 的情况下,80% 就只是一个数字,不是判断依据。 Google SRE Book 里有一段话说得很到位:“如果你不能度量它,你就不能管理它。” 但更准确的说法应该是:如果你度量错了对象,比不度量更危险——因为你会基于错误的信号做决策。 盲区三:告警基于静态阈值,不感知业务影响 传统告警的逻辑是"指标超过阈值就报”。问题是,同样的阈值在不同业务场景下含义完全不同: 场景 CPU 80% 含义 是否需要告警 凌晨 2 点批处理任务 正常负载 不需要 大促期间核心交易服务 即将打满 紧急告警 测试环境压测中 预期行为 不需要 生产环境空闲时段 异常进程 需要排查 静态阈值无法区分这些场景,导致的结果就是:要么告警太多(告警疲劳),要么告警太晚(用户已经投诉了才报)。...

July 30, 2026 · 8 分钟 · 1640 字 · 徐保金

MTTR 从 40 分钟到 8 分钟:用四层防御把故障定位提速 5 倍

概述 凌晨三点,手机震动。告警群炸了 200 条消息,用户投诉已经涌进客服群。你爬起来打开电脑,登录跳板机,发现某个核心接口 P99 飙到 8 秒。接下来 30 分钟你都在翻日志、查 Grafana、问上下游——最终定位到是某个配置中心推了一行错误参数。 这个场景太熟悉了。在我经手的上百次线上故障中,定位环节消耗的时间占 MTTR 的 60% 以上。恢复操作本身可能只要 2 分钟(回滚、重启、切流量),但找到"到底哪里出了问题"往往要花 20-30 分钟。 MTTR(Mean Time To Repair/Recovery)衡量的是从故障发生到服务恢复的平均时间。但这个数字是个黑盒——30 分钟的 MTTR 里,到底哪些环节在拖后腿?检测花了多久?响应花了多久?定位花了多久?恢复花了多久?不拆开看,优化就无从下手。 这篇文章拆解我在某出行项目和某电商项目中实战验证的 MTTR 优化体系——四层防御模型:检测层、响应层、定位层、恢复层。每层有具体的工程手段和度量指标,不是空谈方法论。最终效果:核心服务 MTTR 从 40 分钟降到 8 分钟,故障定位时间从 30 分钟降到 5 分钟。 MTTR 拆解:你优化的是哪个环节 很多人把 MTTR 当成一个整体来优化,这是错的。MTTR 至少要拆成四个阶段: 阶段 全称 含义 典型耗时 优化重点 MTTD Mean Time To Detect 从故障发生到告警触发 1-5 min 监控覆盖、SLO 告警 MTTA Mean Time To Acknowledge 从告警触发到有人开始处理 2-10 min On-Call 机制、告警路由 MTTI Mean Time To Identify 从开始处理到定位根因 10-30 min 可观测性、诊断工具 MTTR Mean Time To Restore 从定位根因到服务恢复 1-5 min 回滚、自愈、预案 注意 MTTR 有两种常见解读:Repair(修复)和 Recovery(恢复)。SRE 语境下我更推荐用 Recovery——目标是恢复服务而非彻底修复 Bug。彻底修复是 Postmortem 之后的事(相关文章:故障复盘改进项跟踪)。...

July 28, 2026 · 9 分钟 · 1722 字 · 徐保金

别被多云忽悠了:从供应商绑架到跨云容灾的架构决策与踩坑实录

概述 凌晨三点,手机震了。告警群一条消息:某云厂商华东 region 存储服务大面积不可用。你负责的核心业务全量部署在这个 region,数据库的主库也在那边。故障已经持续 12 分钟,客户开始投诉,老板在群里问"多久能恢复"。 你心里清楚:跨 region 容灾方案半年前就评审过,但因为"成本太高"被砍了。现在只能硬扛。 这是真实发生过的场景。2023 年阿里云香港机房宕机事件,让不少只做单 region 部署的团队第一次认真思考跨云容灾的问题。但多云架构远不止"把服务部署到两个云"那么简单——网络怎么连通?数据怎么同步?监控怎么统一?成本怎么控制?切换时谁来决策? 这篇文章拆解多云架构设计中的关键决策点,每一层都给出我在实际项目中的选型理由和踩过的坑。不是教科书式的"多云架构有哪些优势",而是一线架构师面对真实约束时做的取舍。 多云 vs 混合云 vs 多区域:先搞清楚你在做哪个 很多人把这三个概念混着用,但它们解决完全不同的问题。 维度 多云(Multi-Cloud) 混合云(Hybrid Cloud) 多区域(Multi-Region) 定义 使用 2+ 个公有云厂商 公有云 + 私有云/本地机房 同一云厂商的不同区域 核心目标 避免厂商绑架、选择性采购 数据合规+弹性扩展 容灾+就近访问 网络复杂度 高(跨厂商 VPC 互联) 中(VPN/专线) 低(厂商内网) 典型场景 A 云跑 AI 推理,B 云跑数据库 核心数据在本地,弹性计算在云 同 region 双活+跨 region 灾备 我的判断:如果你的核心诉求只是"不把鸡蛋放在一个篮子里",先做多区域部署,成本和复杂度远低于跨厂商多云。真正的多云架构应该由业务需求驱动——比如某个云的 GPU 性价比明显更好,或者合规要求特定数据必须在特定云上处理。 我在某出行项目里做过一次"伪多云"的评估:技术团队想用多云来"降低成本",但拆开账单后发现,95% 的成本来自计算和存储资源,跨云迁移后资源单价差异不到 8%,而增加的运维和跨云传输成本吃掉了这块差价。最后改成同厂商多区域 + 预留实例优化,成本反而降了 22%。 别为了多云而多云。先算清楚收益和成本的账。 为什么真的需要多云:四个真实驱动因素 1. 供应商绑架规避 这是最常见的多云驱动因素,但也是最容易被高估的。...

July 25, 2026 · 7 分钟 · 1317 字 · 徐保金

状态文件丢了怎么办:Terraform State 灾难恢复与生产级后端架构

概述 凌晨两点,手机炸了。某出行项目的运维群弹出一连串告警:RDS 主从切换失败、EIP 绑定状态异常、安全组规则缺失。排查了一圈,根因是有人手动在控制台改了安全组规则,Terraform 的 state 文件和云上实际状态不一致,一次 terraform apply 把手动修改的资源全部"纠正"回旧配置——直接覆盖了线上紧急热修复。 这不是个例。Terraform 的 state 文件是整个 IaC 体系的"唯一真相源"(Single Source of Truth),但它同时也是最脆弱的环节。state 文件丢失、锁死、配置漂移,这三个问题我在多个生产环境中全部遇到过。这篇文章不讲 Terraform 基础语法(相关文章:Terraform 基础设施即代码入门 已经讲过),而是聚焦于:生产环境中 state 文件怎么存、怎么锁、怎么迁移、出了事怎么救。 你会看到: state 文件的内部结构和它为什么这么重要 S3 + DynamoDB 远程后端的完整生产级配置(含权限隔离方案) 状态锁卡死的排查和解除方法 配置漂移的检测、修复和预防策略 状态文件拆分迁移的实战步骤(附 terraform state mv 的避坑指南) 一个真实的"state 文件被误删"灾难恢复全过程 state 文件到底是什么 先说人话:state 文件就是 Terraform 的"资产清单"。 你用 Terraform 创建了一台 EC2、一个 RDS、一个 VPC,Terraform 需要记住这些资源的 ID、属性、依赖关系。不然下次 terraform plan 的时候,它怎么知道哪些资源已经创建过、哪些需要更新? state 文件就是一个 JSON 文件,记录了所有被 Terraform 管理的资源的当前状态。每次 terraform apply 后自动更新。 state 文件的内部结构 打开一个 terraform....

July 25, 2026 · 10 分钟 · 2110 字 · 徐保金

CI/CD 部署提速实战:从 90 分钟到 5 分钟的全链路优化

概述 你大概率遇到过这种场景:开发提交一行代码,CI 跑了 40 分钟,CD 部署又磨了 20 分钟。等你喝完两杯咖啡回来一看——构建失败,得重新来。一天下来,光等流水线就耗掉 3 个小时。 这不是个例。我接触过的团队里,流水线超过 30 分钟的占多数。DORA 报告的数据更直接:高效团队的部署频率是低效团队的 973 倍,而流水线耗时是最核心的分水岭——前者平均 5 分钟内完成一次部署,后者要 1 小时以上。 我自己踩过这个坑。在某出行项目里,团队有一条 Go 微服务流水线,从代码提交到生产部署端到端 90 分钟。开发同学天天吐槽,发布日更是鸡飞狗跳。后来我们花了两周时间做全链路优化,把 90 分钟压到 5 分钟。这篇文章就是把那次优化的思路、方法和踩过的坑写下来,让你拿来就能用。 核心优化方向就四个:构建缓存、并行调度、镜像分层、增量发布。下面逐个拆解。 流水线慢在哪:先做性能画像,别盲猜 很多人一上来就改配置,今天加个缓存,明天搞个并行。结果改了两周,流水线还是 40 分钟——因为你不知道时间花在哪了。 正确的做法是先做性能画像(Profiling),把流水线每个阶段的耗时精确到秒,找出真正的瓶颈。 分阶段耗时分析 一条典型的微服务 CI/CD 流水线包含这些阶段: 阶段 优化前耗时 占比 常见瓶颈 代码拉取 1-3 min 3% 全量克隆、大仓库 LFS 文件 依赖安装 8-15 min 17% 无缓存、全量下载、锁文件解析慢 代码编译 10-20 min 22% 无增量编译、串行编译多模块 单元测试 10-20 min 22% 串行执行、测试初始化慢、无并行 镜像构建 5-15 min 12% 无分层缓存、全量重建 镜像推送 3-8 min 6% 大镜像、无压缩、网络瓶颈 部署发布 10-30 min 18% 滚动更新慢、无健康检查优化 这是我实际测量过的数据。依赖安装 + 代码编译 + 单元测试三项加起来占了 60% 以上。这就是你要重点啃的硬骨头。...

July 25, 2026 · 11 分钟 · 2145 字 · 徐保金

微服务限流熔断降级策略:从雪崩防护到精细化流量治理的实战指南

概述 凌晨三点,手机狂震。打开一看,告警群已经炸了——支付服务 P99 延迟从 50ms 飙到 12 秒,错误率突破 80%。更要命的是,故障像多米诺骨牌一样连锁反应:用户服务超时 → 鉴权失败 → 库存服务重试风暴 → 消息队列阻塞 → 支付回调全部超时。监控大屏上三十秒内全部变红。 这不是某家公司独有的惨案。微服务拆得越细,服务间调用链越长,一个局部故障就越容易演变成全局雪崩。我曾在某新能源物流平台治理 50+ 微服务时,亲历过三次类似事故,最后一次最严重——一个下游搜索服务的数据库连接池打满,导致上游所有依赖搜索结果的服务线程池连锁耗尽,整条交易链路瘫痪 17 分钟。 那次事故后我们花了两周时间重做限流熔断降级体系。最终把 P99 从 200ms 压到 170ms,更重要的是,之后再没出现过级联故障。这篇文章把我踩过的坑、做过的架构选型、以及生产环境真正有效的配置经验一次讲透。 先说清楚三者的关系——很多人混着用,但它们解决的问题不同: 防护手段 解决什么问题 类比 作用位置 限流(Rate Limiting) 流量超过系统承载能力 超市收银台只开 3 个窗口,排满了就不让进了 入口处 熔断(Circuit Breaking) 下游服务故障,防止故障蔓延 保险丝,电流过大自动断电 调用链中间 降级(Degradation) 核心功能不可用时提供替代方案 停电了用应急灯,虽然不亮但能看见 业务逻辑层 三者配合使用:限流挡在前面控制输入,熔断在中间切断故障传播,降级在尾部保证用户体验不至于完全崩溃。 雪崩效应:为什么微服务比单体更容易崩 单体应用里,方法调用是进程内函数调用,微秒级完成。微服务拆开后,每次调用都变成了网络请求——网络可能抖动、DNS 可能解析慢、TCP 三次握手有开销、序列化反序列化要时间。一个用户请求从网关进来,经过 5-7 层服务调用是常态。 故障传播路径 看一个真实的调用链: 用户请求 → API Gateway → 订单服务 → 用户服务(鉴权) → 库存服务(扣减) → 优惠券服务 → 支付服务 → 第三方支付网关 假设第三方支付网关变慢了(比如响应从 100ms 变成 5 秒),会发生什么?...

July 23, 2026 · 12 分钟 · 2510 字 · 徐保金

磁盘空间与 inode 管理:从 df 到 lsof 的生产排障全攻略

概述 凌晨三点,你被告警吵醒——线上数据库写入失败,Nginx 起不来,SSH 登录卡顿。登上服务器一查,df -h 显示根分区 100%。这种事每个运维都遇到过,磁盘满大概是生产环境最高频的故障类型之一,根据实际运维统计,磁盘相关告警占比约 15%-20%。 但磁盘满不是一个简单问题。df -h 看到的 100% 可能并不是全部真相: inode 耗尽:磁盘空间还有剩余,但文件系统inode用完了,照样报 No space left on device。这种问题更隐蔽,排查难度也更大。 已删除文件未释放:rm 删了大文件,df 显示空间没变。因为还有进程持有文件描述符,数据块并没有真正释放。 预留空间:ext4 默认预留 5% 空间给 root,400GB 的数据盘就有 20GB 被"藏"起来了。 这篇文章把磁盘空间和 inode 管理的排查思路、清理策略、预防机制一次说透。所有命令都在 Ubuntu 22.04 和 CentOS 7.9 上实测过,能直接拿去用。 磁盘空间的两个维度:blocks 与 inode 很多人对磁盘空间的理解只停留在"还剩多少 GB"这个层面。但 Linux 文件系统管理的是两个独立资源:数据块(blocks) 和 索引节点(inode)。 打个比方:文件系统像一个停车场。blocks 是停车位,inode 是停车记录。停车场可能还有空车位(blocks 没满),但记录本写满了(inode 耗尽),新来的车也停不进去。 inode 是什么 inode(Index Node,索引节点)是文件系统里描述文件元数据的数据结构。每个文件或目录对应一个 inode,存储了以下信息: 元数据字段 说明 文件类型 普通文件、目录、符号链接等 权限信息 rwx 权限位 所有者 uid 和 gid 文件大小 字节数 时间戳 atime / mtime / ctime 数据块指针 指向实际数据存储位置的索引 硬链接数 指向该 inode 的目录项数量 注意一个关键点:inode 不存储文件名。文件名存在目录项(dentry)中,目录项将文件名映射到 inode 编号。这也是为什么硬链接能存在——多个文件名可以指向同一个 inode。...

July 23, 2026 · 9 分钟 · 1726 字 · 徐保金

系统韧性工程:从被动救火到主动防御的架构演进

概述 凌晨两点,你的手机响了。支付服务超时,线程池被占满,上游订单服务开始排队,10 分钟后整个交易链路雪崩。你打开日志一看:下游一个缓存集群抖动了 3 秒,这 3 秒里上游疯狂重试,把连接数打到了上限,然后所有依赖这个连接池的服务一起挂了。 这故事不新鲜。几乎每个干过几年运维的人都经历过类似的连锁故障。问题不在于某个组件会不会挂——分布式系统里,什么都可能挂,网络会抖、磁盘会满、DNS 会抽风、机房会断电。真正的问题是:一个局部故障为什么会演变成全局灾难? 韧性工程(Resilience Engineering)回答的就是这个问题。它不是某个具体工具或某个框架,而是一套从架构设计到运维实践的系统性方法论,核心目标只有一个:让系统在部分组件失效时仍能提供可接受的服务,而不是一路雪崩到全站不可用。 这篇文章把韧性工程拆成三块来讲:一是韧性模式——你的系统到底需要哪些容错机制,每种解决什么问题;二是实践框架——这些模式怎么组合落地,不是东拼西凑几个注解就完事;三是度量与验证——你怎么知道系统真的"韧",而不是你以为它韧。 韧性工程到底在解决什么问题 先说清楚一件事:可靠性(Reliability)和韧性(Resilience)不是一回事。 可靠性回答的是"系统在规定条件下、规定时间内,能不能正常工作"——它关注的是正常状态。你定了 99.9% 的可用性 SLO,这衡量的是可靠性。 韧性回答的是"当条件不满足、甚至出现预期外故障时,系统能不能优雅降级而不是直接崩溃"——它关注的是异常状态。你的服务在数据库挂了 30 秒后还能返回缓存数据,延迟从 50ms 升到 200ms 但没有雪崩,这体现的是韧性。 用一个不太精确但好理解的类比:可靠性是百米短跑你能跑多快,韧性是你摔了一跤后多快能爬起来继续跑。 分布式系统天然比单机系统脆弱,因为引入了网络这个最大的不确定性来源。CAP 定理告诉我们,分区容忍(P)在网络不可靠时是无法回避的。你不可能消灭故障,只能控制故障的影响范围和传播速度。韧性工程本质上就是在做两件事:缩小爆炸半径(一个故障不要扩散到其他组件)和缩短恢复时间(出问题后尽快回到正常状态)。 五大韧性模式 熔断器(Circuit Breaker) 熔断器解决的问题是:当一个下游服务持续故障时,不要继续向它发请求。 道理很直白。如果支付网关已经挂了,你的订单服务每笔请求还在傻等 30 秒超时,100 个并发请求瞬间就把线程池占满了。这时候不光支付不行,连查订单、查库存一起死掉。熔断器的作用就是当失败率达到阈值时,直接切断这条调用链路——后续请求不再访问故障服务,而是立即返回降级响应或报错。 熔断器有三个状态,跟家庭配电箱的空气开关一样: 状态 行为 类比 Closed(闭合) 正常放行请求,记录失败率 开关正常通电 Open(断开) 拒绝所有请求,直接走降级 开关跳闸断电 Half-Open(半开) 放行少量探测请求,试探恢复 试探性恢复供电 状态转换的核心逻辑: Closed → Open: 滑动窗口内失败率超过阈值(如 50%) Open → Half-Open: 经过冷却时间(如 30s)后自动转换 Half-Open → Closed: 探测请求成功率达标 → 恢复正常 Half-Open → Open: 探测请求仍然失败 → 重新断开 实测中有个坑要避:阈值别定太敏感。我见过有人设 10% 失败率就熔断,结果正常的一次 GC 停顿(偶尔 1-2 秒延迟升高)就触发熔断,服务在 Open 和 Closed 之间来回弹跳。建议初始配置失败率阈值 50%、最小调用次数 20、滑动窗口 10 秒,然后根据实际数据调。...

July 23, 2026 · 7 分钟 · 1470 字 · 徐保金

K8s 安全扫描与 CIS Benchmark 合规:从 kube-bench 到生产级加固的完整实战

概述 你管着一个 K8s 集群,API Server 的 --anonymous-auth=true 没关,etcd 的证书权限是 644,kubelet 的 --read-only-port=10255 还开着——这些东西单独看每个都是"小问题",但攻击者拿到其中一个入口,就能一路横向打到整个集群。这不是假设,CNCF 2025 年度调查报告显示,超过 90% 的生产 K8s 集群存在至少一个 CIS Benchmark 级别的配置缺陷。 CIS(Center for Internet Security)Benchmark 是一套业界公认的安全配置基线,K8s 有对应的专门版本。kube-bench 就是用来跑这套基线检查的工具——你把它跑一遍,它告诉你哪些配置不符合安全标准、应该怎么改。 但这只是第一步。光跑出报告不够,你还得知道怎么修、怎么持续监控、怎么把扫描嵌进 CI/CD 流水线里。本文从实际操作出发,覆盖从安装 kube-bench、跑第一次扫描、解读报告、修复常见问题,到配合 Trivy 做镜像漏洞扫描、kube-hunter 做渗透模拟、把安全扫描自动化到 GitOps 流程中的完整路径。 CIS Kubernetes Benchmark 是什么 CIS Benchmark 说白了就是一份"安全配置检查清单"。CIS 这个组织拉了一批安全专家,把某个系统(操作系统、数据库、云平台、K8s 等)应该怎么做才算安全,整理成一份文档,每一条都有明确的检查方法和修复建议。 K8s 的 CIS Benchmark 把检查项分成四个层面: 层面 检查对象 典型检查项 控制平面 API Server、Scheduler、Controller Manager、etcd 是否禁用匿名访问、是否启用 RBAC、etcd 是否启用 TLS 工作节点 kubelet、kube-proxy 是否禁用只读端口、是否启用客户端证书认证 策略 RBAC、PodSecurityPolicy/PSA 是否使用最小权限、是否限制特权容器 托管服务 EKS/GKE/AKS 等 云平台特有的安全配置 每个检查项标注了严重级别:L1 是基本要求,任何环境都该满足;L2 是更严格的要求,适用于安全敏感度高的环境。...

July 22, 2026 · 10 分钟 · 2096 字 · 徐保金