1. 课程导论:RBAC 概念、K8s 集群生命周期管理概述、发布包校验的重要性
1.1 为什么这三者必须放在一起讲?
Kubernetes 平台在生产环境中的稳定运行,依赖三个相互咬合的支柱:权限控制(RBAC)、集群生命周期管理与发布包校验。缺少任何一环,集群都会面临安全漏洞、配置漂移或不可预期的停机风险。本课程将这三者整合为一条完整的运维链路,帮助团队从“能用”走向“可控、可审计、可回溯”。
课程定位: 本课程面向 K8s 平台工程师、SRE 与安全运维人员,要求学员已具备基本的 kubectl 操作经验与 YAML 编写能力。
1.2 RBAC 核心概念速览
RBAC(基于角色的访问控制)是 K8s 默认的授权机制,它通过 Role 定义权限集合,再通过 RoleBinding 将角色绑定到用户或 ServiceAccount。RBAC 的核心原则是最小权限——只授予完成工作所必需的操作权限。
| RBAC 对象 | 作用域 | 典型用途 |
|---|---|---|
| Role | 命名空间 | 定义对某 Namespace 内资源的读写权限 |
| ClusterRole | 集群级别 | 定义集群范围资源(Node、PV、CSR)的权限 |
| RoleBinding | 命名空间 | 将 Role 绑定到用户/ServiceAccount |
| ClusterRoleBinding | 集群级别 | 将 ClusterRole 绑定到用户/ServiceAccount |
常见误区: 很多团队直接使用 cluster-admin 角色进行日常运维,这违反了最小权限原则。正确的做法是为不同角色(如只读审计、应用部署、节点管理)创建独立的 ClusterRole 并绑定到对应人员。
1.3 K8s 集群生命周期管理概述
集群生命周期管理涵盖从创建到销毁的全过程。每个阶段都需要严格的权限控制与发布包校验,否则可能引入安全漏洞或配置错误。
- 集群创建与初始化: 选择 K8s 版本、配置 CNI/CSI、初始化控制面组件。
- 日常运维与扩缩容: 节点池管理、资源配额调整、组件升级。
- 版本升级: 控制面与节点版本对齐、API 兼容性检查、回滚策略。
- 备份与灾难恢复: etcd 快照、持久卷备份、恢复演练。
- 集群退役与销毁: 数据清理、资源释放、审计日志归档。
1.4 发布包校验的重要性
发布包校验是保障 K8s 平台供应链安全的关键环节。在集群生命周期中,无论是升级二进制、部署 Helm Chart 还是应用 Operator,都需要对发布包进行完整性、签名和版本一致性校验。
| 校验类型 | 校验内容 | 风险场景 |
|---|---|---|
| 完整性校验 | SHA256 哈希比对 | 下载过程中被篡改或损坏 |
| 签名验证 | GPG / Sigstore 签名 | 恶意第三方冒充官方发布 |
| 版本一致性 | 版本号与预期匹配 | 误用不兼容版本导致集群故障 |
| 依赖校验 | Chart 依赖完整性 | 缺少依赖导致部署失败 |
真实案例: 2023 年某知名云厂商因未校验升级包的签名,导致恶意二进制被部署到生产集群,造成数小时的服务中断。事后复盘发现,如果当时启用了简单的 GPG 签名验证,完全可以避免该事故。
1.5 三者如何协同工作?
在集群生命周期运维中,RBAC 控制谁可以执行操作,发布包校验确保什么被部署到集群,而生命周期管理则定义何时以及如何执行这些操作。三者协同形成完整的运维安全闭环:
- 创建阶段: RBAC 限制只有平台管理员可以初始化集群;发布包校验确保安装的组件来自可信源。
- 升级阶段: RBAC 控制升级操作的执行者;发布包校验确保升级包未被篡改且版本兼容。
- 日常运维: RBAC 实现权限隔离;发布包校验保障 Helm Chart 或 Operator 的供应链安全。
- 退役阶段: RBAC 确保只有授权人员可以销毁集群;发布包校验用于审计日志的完整性。