使用kubeadm部署Kubernetes集群时,证书与安全配置需遵循以下核心原则:
-
证书管理:
- 默认使用kubeadm生成自签名CA证书,但建议替换为企业内部CA签发的证书以增强信任链。通过修改
ClusterConfiguration
中certificatesDir
路径,并预置自定义CA文件(如ca.crt
、ca.key
)。 - 通过
apiserver-cert-extra-sans
添加API Server的SAN扩展(如负载均衡IP/DNS),避免证书验证错误。
- 默认使用kubeadm生成自签名CA证书,但建议替换为企业内部CA签发的证书以增强信任链。通过修改
-
安全加固:
- 启用RBAC并限制
cluster-admin
权限,使用最小权限原则分配ServiceAccount。 - 配置
kube-apiserver
的--enable-admission-plugins
参数,启用NodeRestriction
、PodSecurityPolicy
(或替代方案如Gatekeeper)等插件。 - 加密etcd存储(通过
--encryption-provider-config
配置AES或KMS加密),确保静态数据安全。
- 启用RBAC并限制
-
网络策略:
- 部署CNI插件(如Calico/Cilium)并启用NetworkPolicy,隔离Pod间通信。
- 配置API Server的
--authorization-mode=Node,RBAC
及--anonymous-auth=false
,禁用匿名访问。
-
证书轮换:
- 使用
kubeadm alpha certs renew
或配置ClusterConfiguration
中的certificatesExpiration
字段(v1.19+)实现自动轮换。
- 使用
-
审计与监控:
- 启用API Server审计日志(
--audit-log-path
),记录关键操作。 - 集成Prometheus与Grafana监控集群证书过期时间及异常行为。
- 启用API Server审计日志(
完整方案需结合kubeadm-config.yaml
自定义参数,并在初始化后通过kubectl apply -f
部署网络策略及安全上下文约束(如Pod Security Standards)。