Instalar Policy Controller

En este tema, se muestra cómo instalar el controlador de políticas, un controlador de admisión de Kubernetes que verifica, audita y aplica el cumplimiento de tus clústeres mediante políticas relacionadas con las de seguridad, las normativas o las comerciales.

Antes de comenzar

  • Debes tener autorización de Anthos para instalar política de controlador con Anthos Config Management.

  • Necesita un clúster que ejecute GKE v1.14.x o superior con Anthos Config Management ya instalado.

Instala el controlador de políticas con Anthos Config Management

Siga estos pasos a fin de configurar Anthos Config Management para instalar el controlador de admisión dinámica del controlador de políticas en el clúster.

De forma predeterminada, el controlador de políticas instala una biblioteca de plantillas de restricciones para tipos de políticas comunes. Para omitir la instalación de las plantillas de restricciones, elimine el comentario de la línea que comienza con templateLibraryInstalled en el manifiesto.

  1. Establezca el valor de enabled dentro del objeto spec.policyController en true en el archivo de configuración para el Operador:

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        # Uncomment to prevent the template library from being installed
        # templateLibraryInstalled: false
        # Uncomment to disable audit, adjust value to set audit interval
        # auditIntervalSeconds: 0
        # Uncomment to log all denies and dryrun failures
        # logDeniesEnabled: true
    
      # ...other fields...
    

    La compatibilidad para restricciones referenciales está inhabilitada según la configuración predeterminada. Antes de habilitarlo, asegúrese de comprender las advertencias sobre la coherencia eventual.

  2. Aplique la configuración con kubectl apply.

    kubectl apply -f config-management.yaml
    

Se crea el pod y el controlador de políticas comienza a buscar restricciones y a aplicarlas.

Cómo verificar la instalación

Si el controlador de políticas se instala de forma adecuada, su pod se encontrará en ejecución. Es posible que el pod se reinicie varias veces antes de que esté disponible.

kubectl get pods -n gatekeeper-system

Salida de ejemplo:

NAME                              READY   STATUS    RESTARTS   AGE
gatekeeper-controller-manager-0   1/1     Running   1          53s

La biblioteca de plantillas de restricciones se instala de forma predeterminada. Este proceso puede tomar varios minutos en completarse. Para verificar que la biblioteca de plantillas esté instalada, enumera todos los objetos ConstraintTemplate:

kubectl get constrainttemplates

Salida de ejemplo:

NAME                                      AGE
k8sallowedrepos                           84s
k8scontainerlimits                        84s
k8spspallowprivilegeescalationcontainer   84s
...[OUTPUT TRUNCATED]...

Cuando una plantilla de restricciones individual se instala correctamente, su campo status.created es true.

Controlador de políticas y Anthos Config Management

Los recursos esenciales para ejecutar el controlador de políticas son administrados por el operador de administración de configuración. Para evitar discrepancias entre el operador y el controlador de políticas, tenga en cuenta lo que se incluye en el repositorio de Anthos Config Management.

Las siguientes son algunas áreas de preocupación:

  • No puede sincronizar una plantilla de restricciones que también es parte de la biblioteca de plantillas a menos que la biblioteca de plantillas de restricciones esté inhabilitada.

  • Si desea sincronizar el recurso de configuración almacenado en el espacio de nombres gatekeeper-system, el espacio de nombres debe estar indefinido en el repositorio o coincidir con la configuración que el operador desea instalar.

  • Si el espacio de nombres gatekeeper-system se elimina del repositorio de la fuente de información, es posible que el operador no pueda recuperarse. Para recuperarlo, borra la configuración de webhook de validación para el controlador de políticas.

Administra la biblioteca de plantillas de restricciones

Para obtener información sobre cómo desinstalar o reinstalar plantillas de restricciones, sus restricciones asociadas o la biblioteca de plantillas de restricciones, consulta Crea restricciones.

Exime espacios de nombres de la aplicación

Puedes configurar el controlador de políticas para ignorar objetos dentro de un espacio de nombres. Para obtener más información, consulta Exime espacios de nombres del controlador de políticas.

Visualiza la versión del controlador de políticas

El controlador de políticas se compila a partir del proyecto de código abierto Gatekeeper. Para ver qué versión del controlador de políticas de Gatekeeper se usa, consulta la etiqueta de la imagen:

kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
  -o="jsonpath={.spec.template.spec.containers[0].image}"

A partir de la versión 1.3.2 y las posteriores de Anthos Config Management, la etiqueta de Git (o el hash) que se usó para compilar Gatekeeper y el número de versión de Anthos Config Management se incluyen en la etiqueta de la imagen, como se muestra a continuación:

.../gatekeeper:version-number-git-tag.gbuild-number

Por ejemplo, en la siguiente imagen, sucede lo siguiente:

gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
  • anthos1.3.2 es el número de versión.
  • 480baac es la etiqueta de Git.
  • 0 es el número de compilación.

También puedes ver una lista de todas las versiones de Anthos Config Management junto con las versiones correspondientes del manifiesto, la instalación y el objeto binario nomos en la matriz de la versión de actualización.

Desinstala el controlador de políticas

Para desinstalar el controlador de políticas, edita la configuración del operador en config-management.yaml y configura policyController.enabled en false. Una vez que el operador elimina el finalizador policycontroller.configmanagement.gke.io, se completa la desinstalación.

Si deseas desinstalar Anthos Config Management por completo, consulta Desinstala el operador de un clúster.

¿Qué sigue?