适用场景
容器化能提高交付效率,但也带来新的运维面:镜像与仓库、网络与存储、资源限制、日志与证书。管好这五块,集群才稳。
配置步骤(容器与集群安全)
# 1) RBAC 最小权限:不用 cluster-admin 给业务
kubectl get clusterrolebinding | grep -v system
# 2) 禁止 privileged 与宿主网络
# 3) 镜像来自私有仓库并做漏洞扫描
# 4) 开启审计日志,记录 exec/port-forward 等操作
关键参数与建议
- 镜像:固定版本标签(不要用 latest)、私有仓库、扫描漏洞
- 资源:为每个工作负载设置 requests/limits,避免相互抢占
- 网络:明确 CNI 方案,Service 暴露方式(NodePort/Ingress)要收敛
- 日志与监控:容器日志集中采集,指标接入 Prometheus
- 证书与令牌:kubeconfig、Ingress 证书、ServiceAccount 权限最小化
容易踩的坑
- 业务用 cluster-admin,越权风险极高
- 允许 privileged 容器,等于给出宿主权限
- API Server 暴露公网且无来源限制
验证与巡检
kubectl auth can-i --as=system:serviceaccount:default:default get pods
- 巡检:无过度授权绑定、API 仅内网可达、审计日志留存
小结
K8s 排障从四层看:节点(NotReady?)→ 调度(Pending?)→ 容器(CrashLoopBackOff?)→ 服务(网络/证书)。先把层定下来,再看日志。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。