概览与核心价值Gatekeeper 基于 OPA 提供 Kubernetes 准入控制与策略治理能力。通过 ConstraintTemplate 与 Constraint 可在集群层面统一实施安全与规范。规则示例:要求资源必须设置 Requests/LimitsapiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
name: k8sresourcelimits
spec:
crd:
spec:
names:
kind: K8sResourceLimits
targets:
- target: admission.k8s.gatekeeper.sh
rego: |
package k8sresourcelimits
violation[{
"msg": msg,
"details": {}}
] {
input.review.kind.kind == "Deployment"
some i
c := input.review.object.spec.template.spec.containers[i]
not c.resources
msg := "containers must set resources.requests and resources.limits"
}
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sResourceLimits
metadata:
name: require-limits
spec:
match:
kinds:
- apiGroups: ["apps"]
kinds: ["Deployment"]
参数与验证环境:`Kubernetes v1.28`、`Gatekeeper v3.13+`。验证点:未设置资源的 Deployment 被拒绝创建设置 requests/limits 后资源可成功创建最佳实践自顶向下实施规范:命名、标签、镜像来源、配额与安全上下文分环境差异化匹配:通过 `match` 控制命名空间与资源类型规则版本化与审计:将模板与约束纳入代码仓库管理结论通过 Gatekeeper 的准入控制与策略治理,可在集群层面统一执行规范,降低漂移与安全风险,规则可验证与可审计。

发表评论 取消回复