kubewarden

Kubewarden 策略引擎

补充说明

Kubewarden 用 WebAssembly 编写 Kubernetes 准入策略,支持 Rust、Go、Python、TypeScript 等语言。策略以 OCI 镜像分发,由 PolicyServer 执行,适合需要可移植、沙箱化策略的集群。

核心概念:PolicyServer、ClusterAdmissionPolicy、AdmissionPolicy、PolicyReport 和 kwctl CLI。

语法

安装控制器:

helm repo add kubewarden https://charts.kubewarden.io
helm install kubewarden kubewarden/kubewarden \
  --namespace kubewarden --create-namespace
kubectl -n kubewarden get pods

创建 PolicyServer:

kubectl apply -f - <<'EOF'
apiVersion: policies.kubewarden.io/v1
kind: PolicyServer
metadata:
  name: default
spec:
  replicas: 2
  image: ghcr.io/kubewarden/policy-server:v1.20.0
EOF

创建 ClusterAdmissionPolicy:

kubectl apply -f - <<'EOF'
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
  name: psp-capabilities
spec:
  module: registry://ghcr.io/kubewarden/policies/psp-capabilities:v0.1.9
  rules:
  - apiGroups: [""]
    apiVersions: ["v1"]
    resources: ["pods"]
    operations: ["CREATE", "UPDATE"]
  mutating: false
  settings:
    allowed_capabilities: ["NET_BIND_SERVICE"]
    required_drop_capabilities: ["ALL"]
EOF

查看策略和报告:

kubectl get clusteradmissionpolicies
kubectl get policyreports -A
kubectl describe clusteradmissionpolicy psp-capabilities

使用 kwctl 本地测试:

kwctl pull registry://ghcr.io/kubewarden/policies/psp-capabilities:v0.1.9
kwctl run registry://ghcr.io/kubewarden/policies/psp-capabilities:v0.1.9 \
  --request pod.json

注意

相关命令

参考链接