使用kubeadm安装Kubernetes集群时,证书与安全配置是核心环节。以下是关键步骤和原则:
-
证书配置:
- 默认使用kubeadm生成的CA证书(有效期1年),可通过
kubeadm init phase certs
自定义证书路径和有效期。 - 在
kubeadm-config.yaml
中设置apiServer.certSANs
添加所有节点IP/DNS,避免证书校验失败。 - 若需替换CA,需手动生成
ca.key
和ca.crt
并放置于/etc/kubernetes/pki
目录。
- 默认使用kubeadm生成的CA证书(有效期1年),可通过
-
安全加固:
- API Server配置:启用
--anonymous-auth=false
禁用匿名访问,设置--authorization-mode=RBAC
,添加--enable-admission-plugins=NodeRestriction
限制kubelet权限。 - 加密etcd存储:在
kubeadm-config.yaml
中配置apiServer.extraArgs
添加--encryption-provider-config
指定加密策略文件。 - 控制平面组件间通信强制TLS,通过
kubeadm init
时指定--control-plane-endpoint
避免单点风险。
- API Server配置:启用
-
集群初始化参数:
- 使用
kubeadm init --apiserver-cert-extra-sans=<IP/DNS>
扩展证书SAN列表。 - 配置
kubelet
自动证书轮换:在kubeadm-config.yaml
中设置certificatesDir
并启用rotateCertificates: true
。
- 使用
-
后续维护:
- 定期通过
kubeadm certs renew
更新证书。 - 使用
kube-apiserver
审计日志(--audit-log-path
)记录所有API请求。 - 通过NetworkPolicy和PodSecurityPolicy(或替代方案如PSA)强化网络与容器安全。
- 定期通过
生产环境建议结合外部CA(如Vault)管理证书,并集成HIDS/NIDS进行实时监控。