Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:gatekeeper overview and release notes

Última actualización: Sep 04, 2026

El complemento gatekeeper le ayuda a gestionar y aplicar directivas de Open Policy Agent (OPA) en clústeres de ACK, incluida la gestión de etiquetas de namespace. Este tema describe la funcionalidad de gatekeeper, las instrucciones de uso y las notas de la versión. gatekeeper integra OPA en los clústeres de ACK para definir y aplicar directivas de admisión mediante CRD. Controle la creación de recursos por etiquetas, tipos de recurso, namespaces y otros atributos. gatekeeper también gestiona las etiquetas de los namespaces.

Para usar gatekeeper:

  1. Instale gatekeeper desde la página Add-ons en la consola de ACK. Consulte Manage components.

  2. Cree una plantilla de restricción para definir la lógica de la directiva en Rego.

  3. Cree una restricción para aplicar la plantilla a namespaces o tipos de recurso específicos.

  4. Compruebe que la restricción funciona como se espera.

Consulte Open Policy Agent.

Gatekeeper architecture

Funcionamiento

Gatekeeper se ejecuta como un webhook de admisión. validation.gatekeeper.sh intercepta las solicitudes de creación y actualización de recursos, y las evalúa con respecto a las restricciones activas.

El modelo de directivas tiene dos capas:

  • ConstraintTemplate: define la lógica de la directiva en Rego y registra un nuevo tipo de CRD.

  • Constraint: es una instancia de ConstraintTemplate que especifica los recursos objetivo y los parámetros de aplicación.

Consulte Cómo usar Gatekeeper.

Aplicar directivas de etiquetas de pods

Este ejemplo requiere que todos los pods de un namespace tengan una etiqueta específica. Tanto la plantilla como la restricción tardan aproximadamente 10 segundos en inicializarse.

Requisitos previos

Asegúrese de contar con lo siguiente:

  • Un clúster de ACK con gatekeeper instalado

  • kubectl configurado para conectarse al clúster

Crear un namespace y asignarle una etiqueta

Cree un namespace de prueba con la etiqueta que coincide con la restricción:

kubectl create ns test-gatekeeper
kubectl label ns test-gatekeeper name=test-gatekeeper

Crear una plantilla de restricción

Esta plantilla registra un CRD K8sRequiredLabels y define la lógica de la directiva en Rego:

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

        # A violation is triggered when required labels are missing from the resource.
        violation[{"msg": msg, "details": {"missing_labels": missing}}] {
          # Collect all labels on the incoming resource.
          provided := {label | input.review.object.metadata.labels[label]}
          # Collect all labels required by the constraint parameters.
          required := {label | label := input.parameters.labels[_]}
          # Compute the set of labels that are required but not provided.
          missing := required - provided
          count(missing) > 0
          msg := sprintf("you must provide labels: %v", [missing])
        }
EOF

Espere aproximadamente 10 segundos para la inicialización.

Crear una restricción

Aplique la plantilla K8sRequiredLabels a los pods en los namespaces etiquetados con name=test-gatekeeper y exija la etiqueta 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

Espere aproximadamente 10 segundos para la activación.

Comprobar la restricción

Ejecute estas pruebas para comprobar la restricción.

Prueba 1: Se deniega un pod sin la etiqueta obligatoria.

kubectl -n test-gatekeeper run test-deny --image=nginx --restart=Never

Salida esperada:

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"}

Rechazado: el namespace test-gatekeeper coincide con el selector y el pod no tiene la etiqueta gatekeeper-test-label.

Prueba 2: Se permite un pod con la etiqueta obligatoria.

kubectl -n test-gatekeeper run test-pass -l gatekeeper-test-label=pass --image=nginx --restart=Never

Salida esperada:

pod/test-pass created

Admitido: el pod incluye la etiqueta gatekeeper-test-label.

Prueba 3: Se permite un pod en un namespace sin restricciones.

kubectl -n default run test-deny --image=nginx --restart=Never

Salida esperada:

pod/test-deny created

El namespace default no tiene la etiqueta name=test-gatekeeper, por lo que la restricción no se aplica.

Notas de la versión

Marzo de 2025

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.18.2.192-ge2860248-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.192-ge2860248-aliyun

2025-03-04

  • Se actualizó OPA Gatekeeper a la v3.18.2.

  • Se actualizó Go a la versión 1.23.6 para mejorar la estabilidad.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Diciembre de 2024

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.17.1.174-g6383c639-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.17.1.174-g6383c639-aliyun

2024-12-09

Se actualizó OPA Gatekeeper a la v3.17.1.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Septiembre de 2024

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.16.3.158-g5e73c0ad-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.16.3.158-g5e73c0ad-aliyun

2024-09-25

Se actualizó OPA Gatekeeper a la v3.16.3.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Marzo de 2024

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.15.1.150-g29b8b2a8-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.15.1.150-g29b8b2a8-aliyun

2024-03-27

Se actualizó OPA Gatekeeper a la v3.15.1.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Octubre de 2023

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.12.0.138-g1ee37e37-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.12.0.138-g1ee37e37-aliyun

2023-10-09

  • Se actualizó OPA Gatekeeper a la v3.12.0.

  • Se agregó compatibilidad con directivas para eventos de eliminación de Service.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Abril de 2023

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.10.0.130-g0e79597d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.10.0.130-g0e79597d-aliyun

2023-04-18

  • Se actualizó OPA Gatekeeper a la v3.10.0.

  • La replicación de datos está deshabilitada de forma predeterminada. Habilítela en la página Add-ons. Consulte Replicación de datos.

  • Se agregó compatibilidad con directivas para eventos de eliminación de namespaces.

  • Se agregó compatibilidad con Kubernetes 1.26.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Junio de 2022

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.8.1.113-geb7947ef-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.8.1.113-geb7947ef-aliyun

2022-06-08

  • Se actualizó OPA Gatekeeper a la v3.8.1.

  • Los pods de auditoría están deshabilitados de forma predeterminada. Habilítelos en la página Add-ons.

  • La CPU, la memoria y el número de réplicas se pueden configurar en la página Add-ons.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Abril de 2022

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.7.1.93-gaf375989-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.1.93-gaf375989-aliyun

2022-04-02

La mutación está deshabilitada de forma predeterminada. Habilítela en la página Add-ons. Consulte Mutación.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Febrero de 2022

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.7.0.84-gf5fd3ffd-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.84-gf5fd3ffd-aliyun

2022-02-15

Se optimizó el rendimiento. Se corrigió el uso anómalo de CPU en casos extremos.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Enero de 2022

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.7.0.82-gafe4391b-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.82-gafe4391b-aliyun

2022-01-14

  • Se actualizó OPA Gatekeeper a la v3.7.0.

  • Se agregó compatibilidad con ARM64.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Septiembre de 2021

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.6.0.62-g156146d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.6.0.62-g156146d-aliyun

2021-09-20

  • gatekeeper 3.6.0.62 y versiones posteriores requieren Kubernetes 1.16.9 o superior.

  • Se actualizó OPA Gatekeeper a la v3.6.0.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Marzo de 2021

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.3.0.24-8e68abc-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.3.0.24-8e68abc-aliyun

2021-03-16

  • Se agregó compatibilidad con clústeres registrados.

  • Se actualizó OPA Gatekeeper a la versión 3.3.0.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.

Agosto de 2020

Versión

Dirección de la imagen

Fecha de publicación

Descripción

Impacto

v3.1.0.11-24bab09-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.1.0.11-24bab09-aliyun

2020-08-20

Se actualizó OPA Gatekeeper a la versión 3.1.0-beta.12.

Si ocurren excepciones durante la actualización del componente, es posible que fallen los cambios en los recursos del clúster. Realice la actualización fuera de las horas pico.