在Debian系统上安装Kubernetes时,安全性是一个非常重要的考虑因素。以下是一些关键的安全性建议和最佳实践:
sudo apt update && sudo apt upgrade -y
sudo ufw enable
sudo ufw allow 22/tcp # SSH
sudo ufw allow 6443/tcp # Kubernetes API server
sudo ufw allow 10250/tcp # Kubelet
sudo ufw allow 10251/tcp # kube-scheduler
sudo ufw allow 10252/tcp # kube-controller-manager
sudo ufw allow 30000-32767/tcp # Dynamic port range for pods
API Server:
etcd:
Kubelet:
Controller Manager 和 Scheduler:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
sudo apt update && sudo apt upgrade -y
docker pull aquasec/trivy:latest
trivy image your-image-name
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
namespace: default
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
runAsUser:
rule: 'MustRunAsNonRoot'
seLinux:
rule: 'RunAsAny'
supplementalGroups:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
etcdctl snapshot save /path/to/snapshot.db
通过遵循这些最佳实践,可以显著提高在Debian系统上安装的Kubernetes集群的安全性。