以下是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配置frontend訪問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,避免證書過期參考來源:
以上措施需根據實際業務場景調整,優先遵循“最小權限原則”和“零信任”理念,定期進行安全審計與滲透測試。