温馨提示×

k8s在centos上如何进行安全配置

小樊
40
2025-12-23 16:49:34
栏目: 智能运维

CentOS 上 Kubernetes 的安全配置清单

一 系统加固与内核参数

  • 关闭 Swap:临时执行 swapoff -a,并在 /etc/fstab 中注释所有包含 swap 的行,避免 kubelet 因检测到 Swap 而拒绝启动。
  • SELinux:优先保持 SELINUX=enforcing 并通过策略放行所需访问;如确有兼容性问题,可设置为 permissivedisabled(需重启)。
  • 防火墙:生产环境不建议直接关闭 firewalld,应仅开放必要端口(如 6443、10250、10251、10252、2379/2380、10256、30000-32767 等,按实际组件与 CNI 调整)。
  • 内核与转发:启用 br_netfilter 与桥接流量入 iptables,开启 IPv4 转发,并持久化:
    • 模块:echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/k8s.conf && sudo modprobe overlay && sudo modprobe br_netfilter
    • Sysctl:echo -e “net.bridge.bridge-nf-call-iptables = 1\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.ipv4.ip_forward = 1” | sudo tee /etc/sysctl.d/k8s.conf && sudo sysctl --system
  • 时间同步:部署 chrony/ntpd,确保所有节点时间一致,避免证书校验与审计日志异常。

二 集群身份与访问控制

  • API Server 认证与加密:启用 TLS;使用 客户端证书、bootstrap token、OIDC、Webhook 等组合认证;对外仅暴露 6443,apiserver 到 kubelet、etcd、scheduler、controller-manager 之间通信全链路加密。
  • RBAC 最小权限:按“最小权限原则”配置 Role/ClusterRoleRoleBinding/ClusterRoleBinding;避免使用 cluster-admin 日常操作;为系统组件使用 专用 ServiceAccount
  • 准入控制:启用 Pod Security Admission(替代已废弃的 PSP),按命名空间设置 baseline/restricted 级别;对变更类资源使用 准入 Webhook 做策略拦截(如镜像白名单、不可变标签、资源配额)。
  • 审计与密钥:开启 审计日志(apiserver --audit-* 参数或审计策略文件),集中存储与轮转;kubeconfigbootstrap token证书私钥妥善管控并定期轮换。

三 网络与运行时安全

  • 网络策略:部署 NetworkPolicy,默认拒绝(Default Deny),按业务划分 Namespace/Pod 标签,仅对白名单流量放通(如仅允许前端到后端、数据库仅内网可达)。
  • 服务暴露:对外仅暴露必要 Ingress 域名与端口,启用 HTTPS/TLS;内部服务优先使用 ClusterIPInternal LoadBalancer
  • 加密与隔离:对 Pod 到 Pod / 服务到服务 通信启用 mTLS(如服务网格或 API 网关);对敏感命名空间启用 NetworkPolicy 隔离。
  • 容器运行时:使用 Containerd 并启用 SystemdCgroup = true;配置镜像仓库 TLS 与凭据;为 kubelet 设置 只读根文件系统、非特权容器、最小能力集(Capabilities) 等安全上下文。

四 镜像与数据安全

  • 镜像治理:优先使用 私有镜像仓库,启用 镜像签名镜像扫描(如 Trivy、Clair、kube-bench 等);禁止运行 latest 标签,使用 不可变标签(SHA/版本)
  • 运行时上下文:在 Pod/Deployment 中设置 runAsNonRoot: truereadOnlyRootFilesystem: truerunAsUser/runAsGroupallowPrivilegeEscalation: falsecapabilities.drop=ALL 等;按需仅添加最小能力。
  • 数据面安全:对 etcd 数据静态加密(EncryptionConfiguration),备份与恢复流程纳入变更管理;密钥集中托管(如 KMS)。

五 运维监控与持续加固

  • 组件与系统更新:保持 Kubernetes 组件与 CentOS 的安全补丁为最新;变更通过 灰度/蓝绿回滚预案 实施。
  • 监控与告警:部署 Prometheus + Grafana 监控 API Server、kubelet、etcd、网络、节点资源 等关键指标;对异常连接、证书即将过期、审计拒绝等配置 告警
  • 日志与审计:集中采集 apiserver/audit、kubelet、容器 stdout/stderr 与系统日志,保留周期与合规要求一致;定期审计 RBAC 权限准入策略 的必要性。
  • 节点与平台:使用 污点/容忍度(Taints/Tolerations) 隔离敏感工作负载;对管理口与带外管理网络实施 访问控制多因素认证

0