以下是CentOS上K8s的安全设置操作要点,涵盖系统、网络、权限、镜像等核心维度:
systemctl disable ftpd postfixfirewalld限制端口:firewall-cmd --add-port=6443/tcp --permanent(仅开放API Server端口)setenforce 0;永久禁用:修改/etc/selinux/config为disabledswapoff -a,并注释/etc/fstab中的Swap配置yum update -yfrontend访问backend的8080端口:apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
应用策略:kubectl apply -f network-policy.yamlkubectl create namespace devdev命名空间创建Pod:apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: dev
name: pod-creator
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create", "get", "list"]
绑定到服务账户:kubectl create rolebinding dev-pod-creator --role=pod-creator --serviceaccount=dev:default--anonymous-auth=falsesecurityContext禁止特权容器、限制文件系统只读:securityContext:
runAsNonRoot: true
readOnlyRootFilesystem: true
cosign对镜像签名,部署时验证签名有效性apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
resources:
- group: ""
resources: ["pods", "services"]
kubectl apply -f falco-daemonset.yamlkubeadm upgrade升级集群版本,确保修复安全漏洞kubeadm certs renew all,避免证书过期参考来源:
以上措施需根据实际业务场景调整,优先遵循“最小权限原则”和“零信任”理念,定期进行安全审计与渗透测试。