gatekeeper组件可以帮助您方便地管理和应用集群内的Open Policy Agent(OPA)策略,实现命名空间标签管理等功能。本文为您介绍gatekeeper组件的功能、使用说明和变更记录。
组件介绍
Open Policy Agent(OPA)是一个开源的、通用的策略引擎,可以在整个堆栈中实现统一的、上下文感知的策略实施。gatekeeper组件可以管理和应用集群内的Open Policy Agent(OPA)策略,实现命名空间标签管理等功能。有关OPA的介绍,请参见Open Policy Agent。gatekeeper组件架构如下图所示。
关于如何安装gatekeeper组件,请参见组件。
使用说明
本示例将演示如何通过gatekeeper实现限制指定命名空间下创建的Pod必须包含一个名为gatekeeper-test-label的标签,借此展示gatekeeper的基本用法。更多gatekeeper的用法,请参见使用gatekeeper。
-
执行以下命令,创建一个测试用的命名空间 test-gatekeeper,同时给命名空间增加name=test-gatekeeper标签。
kubectl create ns test-gatekeeper kubectl label ns test-gatekeeper name=test-gatekeeper -
执行以下命令,创建一个检查标签的策略模板。
kubectl apply -f - <<EOF apiVersion: templates.gatekeeper.sh/v1beta1 kind: ConstraintTemplate metadata: name: k8srequiredlabels spec: crd: spec: names: kind: K8sRequiredLabels validation: openAPIV3Schema: properties: labels: type: array items: type: string targets: - target: admission.k8s.gatekeeper.sh rego: | package k8srequiredlabels violation[{"msg": msg, "details": {"missing_labels": missing}}] { provided := {label | input.review.object.metadata.labels[label]} required := {label | label := input.parameters.labels[_]} missing := required - provided count(missing) > 0 msg := sprintf("you must provide labels: %v", [missing]) } EOF等待10秒左右,待gatekeeper完成策略模板初始化。
-
执行以下命令,创建一个策略模板的约束。
这个约束将限制包含标签name=test-gatekeeper的命名空间下创建的Pod必须包含名为gatekeeper-test-label的标签。
kubectl apply -f - <<EOF apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: pod-must-have-gatekeeper-test-label spec: match: kinds: - apiGroups: [""] kinds: ["Pod"] namespaceSelector: matchExpressions: - key: name operator: In values: ["test-gatekeeper"] parameters: labels: ["gatekeeper-test-label"] EOF等待10秒左右,待gatekeeper完成约束的初始化。
-
验证命名空间的约束效果。
-
执行以下命令,在包含标签
name=test-gatekeeper的命名空间test-gatekeeper下创建一个不包含gatekeeper-test-label标签的Pod。kubectl -n test-gatekeeper run test-deny --image=nginx --restart=Never预期输出:
Error from server ([denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}): admission webhook "validation.gatekeeper.sh" denied the request: [denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}可以看到,在包含标签
name=test-gatekeeper的命名空间test-gatekeeper下创建一个不包含gatekeeper-test-label标签的Pod失败。 -
执行以下命令,在包含标签
name=test-gatekeeper的命名空间test-gatekeeper下创建一个包含gatekeeper-test-label标签的Pod。kubectl -n test-gatekeeper run test-pass -l gatekeeper-test-label=pass --image=nginx --restart=Never预期输出:
pod/test-pass created可以看到,在包含标签
name=test-gatekeeper的命名空间test-gatekeeper下创建一个包含gatekeeper-test-label标签的Pod成功。 -
执行以下命令,在其他未配置约束的命名空间下创建一个不包含
name=test-gatekeeper标签的Pod。kubectl -n default run test-deny --image=nginx --restart=Never预期输出:
pod/test-deny created可以看到,在其他未配置约束的命名空间下创建一个不包含
name=test-gatekeeper标签的Pod成功。
根据以上验证,说明通过gatekeeper限制指定命名空间下创建的Pod必须包含一个名为
gatekeeper-test-label的标签成功。 -
变更记录
2026年01月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
3.18.5 |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:3.18.5 |
2026年01月04日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2025年12月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
3.18.4 |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:3.18.4 |
2025年12月22日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2025年09月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
3.18.3 |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:3.18.3 |
2025年09月18日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2025年08月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.18.2.213-gaf4ea24b-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.213-gaf4ea24b-aliyun |
2025年08月13日 |
针对Auto Mode集群新增支持托管版gatekeeper组件。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2025年07月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.18.2.202-ga69cc4eb-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.202-ga69cc4eb-aliyun |
2025年07月31日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
|
v3.18.2.198-gcca4ccaf-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.198-gcca4ccaf-aliyun |
2025年07月16日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2025年03月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.18.2.192-ge2860248-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.192-ge2860248-aliyun |
2025年03月04日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2024年12月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.17.1.174-g6383c639-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.17.1.174-g6383c639-aliyun |
2024年12月09日 |
升级组件依赖的OPA gatekeeper软件版本至v3.17.1。关于v3.17.1 OPA gatekeeper的更多信息,请参见Releases v3.17.1。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2024年09月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.16.3.158-g5e73c0ad-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.16.3.158-g5e73c0ad-aliyun |
2024年09月25日 |
升级组件依赖的OPA gatekeeper软件版本至v3.16.3。关于v3.16.3 OPA gatekeeper的更多信息,请参见Releases v3.16.3。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2024年03月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.15.1.150-g29b8b2a8-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.15.1.150-g29b8b2a8-aliyun |
2024年03月27日 |
升级组件依赖的OPA gatekeeper软件版本至v3.15.1。关于v3.15.1的OPA gatekeeper更多信息,请参见Releases v3.15.1。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2023年10月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.12.0.138-g1ee37e37-aliyun |
registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.12.0.138-g1ee37e37-aliyun |
2023年10月09日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2023年04月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.10.0.130-g0e79597d-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.10.0.130-g0e79597d-aliyun |
2023年04月18日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2022年06月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.8.1.113-geb7947ef-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.8.1.113-geb7947ef-aliyun |
2022年06月08日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2022年04月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.7.1.93-gaf375989-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.1.93-gaf375989-aliyun |
2022年04月02日 |
支持在组件管理页面自助开启Mutation功能(默认禁用该功能)。关于Mutation更多信息,请参见Mutation功能。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2022年02月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.7.0.84-gf5fd3ffd-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.84-gf5fd3ffd-aliyun |
2022年02月15日 |
优化程序性能,修复极端情况下可能会出现CPU占用异常的问题。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2022年01月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.7.0.82-gafe4391b-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.82-gafe4391b-aliyun |
2022年01月14日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2021年09月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.6.0.62-g156146d-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.6.0.62-g156146d-aliyun |
2021年09月20日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2021年03月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.3.0.24-8e68abc-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.3.0.24-8e68abc-aliyun |
2021年03月16日 |
|
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |
2020年08月
|
版本号 |
镜像地址 |
变更时间 |
变更内容 |
变更影响 |
|
v3.1.0.11-24bab09-aliyun |
registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.1.0.11-24bab09-aliyun |
2020年08月20日 |
升级依赖的OPA gatekeeper软件版本至v3.1.0-beta.12。 说明
opa gatekeeper是gatekeeper组件使用的一个开源软件。 |
组件升级异常可能会导致集群资源变更失败,建议在业务低谷期进行升级操作。 |