Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Installa Policy Controller

Questa pagina mostra come installare Controller controller. Policy Controller controlla, verifica e applica la conformità dei tuoi cluster ai criteri relativi a sicurezza, normative e regole aziendali.

Policy Controller è disponibile se utilizzi Anthos o Google Kubernetes Engine (GKE). Con GKE, Policy Controller è una funzionalità a pagamento. Per scoprire di più, consulta la pagina relativa ai prezzi. Puoi anche creare un report per provare Policy Controller prima di installarlo senza costi.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  1. Installa e inizializza Google Cloud CLI, che fornisce i comandi gcloud, gsutil, kubectl e nomos utilizzati in queste istruzioni. Se utilizzi Cloud Shell, l'Google Cloud CLI è preinstallata.

  2. Se è la prima volta che utilizzi Anthos Config Management, attiva Anthos Config Management.

  3. Crea o assicurati di avere accesso a un cluster che esegue una versione di Kubernetes 1.14.x o successive. Policy Controller potrebbe sembrare in esecuzione su versioni di Kubernetes precedenti alla 1.14.x, ma il prodotto non si comporta correttamente.

  4. Concedi i ruoli IAM richiesti all'utente che registra il cluster.

  5. Se prevedi di utilizzare Google Cloud CLI per configurare Policy Controller, registra il tuo cluster su un parco risorse ora. Se prevedi di utilizzare la console Google Cloud, registra i tuoi cluster quando installi Policy Controller.

Installa Policy Controller

Segui questi passaggi per configurare Anthos Config Management per installare il controller di ammissione dinamico di Policy Controller nel cluster. Quando installi Config Sync tramite la console Google Cloud o Google Cloud CLI, in un secondo momento non puoi utilizzare i comandi kubectl per modificare la configurazione.

Console

Registra i tuoi cluster

Per utilizzare Anthos Config Management, registra prima i cluster. La registrazione dei cluster consente loro di condividere un insieme comune di configurazioni e criteri.

Per registrare i cluster, completa le seguenti attività:

  1. Nella console Google Cloud:
    • Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.

      Vai a Config Management

    • Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.

      Vai a Config Management

  2. Seleziona Installa Policy Controller.

  3. Nella pagina Seleziona i cluster registrati per Config Management, individua la tabella Cluster non registrati da questo progetto e trova il cluster che vuoi registrare.

  4. Fai clic su Registra accanto al cluster che vuoi registrare.

    Una volta registrato il cluster, questo viene visualizzato nella tabella Seleziona i cluster registrati per Config Management.

Configura Policy Controller

Per installare Policy Controller sulla console Google Cloud, completa questi passaggi:

  1. Nella pagina Seleziona i cluster registrati per Config Management, seleziona il cluster registrato per cui vuoi abilitare Policy Controller e fai clic su Avanti.
  2. Lascia selezionata la casella di controllo Abilita Policy Controller.
  3. (Facoltativo) Per configurare le impostazioni aggiuntive, fai clic su Mostra impostazioni avanzate.
  4. (Facoltativo) Per modificare le risorse, lascia selezionata la casella di controllo Abilita mutare Webhook.

  5. (Facoltativo) Per installare una libreria di modelli di vincoli per i tipi di criteri comuni, lascia selezionata la casella di controllo Installa la libreria di modelli predefinita.

  6. (Facoltativo) Nel campo Intervallo di controllo, aggiungi il periodo in secondi tra sincronizzazioni consecutive. Il valore predefinito è 60 secondi e, se imposti l'intervallo di controllo su 0, il controllo è disattivato.

  7. (Facoltativo) Nel campo Spazi dei nomi esenti, aggiungi un elenco di spazi dei nomi. Gli oggetti in questi spazi dei nomi vengono ignorati da tutti i criteri. Non è necessario che gli spazi dei nomi siano già presenti.

  8. (Facoltativo) Per attivare i vincoli di riferimento, lascia selezionata la casella di controllo Abilita la possibilità di utilizzare modelli di vincolo che fanno riferimento a oggetti diversi dall'oggetto attualmente valutato.

  9. (Facoltativo) Se non vuoi installare Config Sync, fai clic su Avanti e deseleziona la casella di controllo Abilita Config Sync.

  10. Per completare l'installazione, fai clic su Completa. Tornerai alla pagina Config Management.

    Dopo qualche minuto, dovresti vedere Installato nella colonna di stato del controller dei criteri accanto al cluster che hai configurato.

gcloud

  1. Prepara la configurazione creando un nuovo manifest apply-spec.yaml o utilizzando un manifest esistente. L'uso di un manifest esistente ti consente di configurare il cluster con le stesse impostazioni utilizzate da un altro cluster.

Crea nuovo manifest

Per configurare Policy Controller con le nuove impostazioni per il tuo cluster, crea un file denominato apply-spec.yaml e copia al suo interno il seguente file YAML:

# apply-spec.yaml

applySpecVersion: 1
spec:
  policyController:
    # Set to true to install and enable Policy Controller
    enabled: true
    # Uncomment to prevent the template library from being installed
    # templateLibraryInstalled: false
    # Uncomment to enable support for referential constraints
    # referentialRulesEnabled: true
    # Uncomment to disable audit, adjust value to set audit interval
    # auditIntervalSeconds: 0
    # Uncomment to log all denies and dryrun failures
    # logDeniesEnabled: true
    # Uncomment to enable mutation
    # mutationEnabled: true
    # Uncomment to exempt namespaces
    # exemptableNamespaces: ["namespace-name"]
    # Uncomment to change the monitoring backends
    # monitoring:
    #     backends:
    #     - cloudmonitoring
    #     - prometheus
  # ...other fields...

Devi aggiungere un campo spec.policyController e impostare il valore enabled su true. Puoi scegliere di attivare altre funzionalità di Policy Controller. Tuttavia, il supporto per i vincoli di riferimento è disabilitato per impostazione predefinita. Prima di abilitarlo, assicurati di acquisire familiarità con le avvertimenti sulla coerenza finale.

Usa manifest esistente

Per configurare il cluster con le stesse impostazioni utilizzate da un altro cluster, recupera le impostazioni da un cluster registrato:

gcloud alpha container fleet config-management fetch-for-apply \
     --membership=MEMBERSHIP_NAME \
     --project=PROJECT_ID \
     > CONFIG_YAML_PATH

Sostituisci quanto segue:

  • MEMBERSHIP_NAME: il nome dell'appartenenza al cluster registrato con le impostazioni di Policy Controller che vuoi utilizzare
  • PROJECT_ID: il tuo ID progetto
  • CONFIG_YAML_PATH: il percorso del file apply-spec.yaml

2. Applica il file apply-spec.yaml:

  gcloud beta container fleet config-management apply \
      --membership=MEMBERSHIP_NAME \
      --config=CONFIG_YAML \
      --project=PROJECT_ID

Sostituisci quanto segue:

  • MEMBERSHIP_NAME: il nome dell'appartenenza al cluster registrato con le impostazioni di Policy Controller che vuoi utilizzare.
  • CONFIG_YAML: aggiungi il percorso al file apply-spec.yaml.
  • PROJECT_ID: aggiungi il tuo ID progetto.

Il pod viene creato e Policy Controller inizia a controllare e applicare i vincoli.

Installare Policy Controller su un cluster privato

Se utilizzi una versione precedente alla 1.8.0 e installi Policy Controller su un cluster privato in Google Kubernetes Engine (GKE), devi eseguire ulteriori passaggi per completare l'installazione. Nei cluster privati, il firewall impedisce al piano di controllo di raggiungere i nodi sulla porta 8443, che è il punto in cui il piano di controllo tenta di connettersi a Policy Controller. Puoi creare una regola firewall in modo che il piano di controllo possa raggiungere la porta 8443 (o qualsiasi altra porta personalizzata). Puoi anche far funzionare il pod sulla porta con privilegi 443. Per ulteriori informazioni, consulta la sezione Esecuzione dei nodi dei cluster GKE privati nella documentazione di Gatekeeper.

Verificare l'installazione di Policy Controller

Dopo aver installato Policy Controller, puoi verificare che l'operazione sia stata completata correttamente.

Console

Procedi con i seguenti passaggi:

  1. Nella console Google Cloud:
    • Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.

      Vai a Config Management

    • Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.

      Vai a Config Management

  2. Nella scheda Impostazioni, controlla la colonna Stato del controller dei criteri nella tabella del cluster. Un'installazione riuscita ha lo stato Installata.

gcloud

Esegui questo comando:

gcloud beta container fleet config-management status \
    --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID del tuo progetto.

Dovresti vedere un output simile all'esempio seguente:

Name          Status  Last_Synced_Token  Sync_Branch  Last_Synced_Time      Policy_Controller
CLUSTER_NAME  SYNCED  a687c2c            1.0.0        2021-02-17T00:15:55Z  INSTALLED

Un'installazione riuscita ha lo stato INSTALLED nella colonna Controller dei criteri.

Verifica l'installazione della libreria dei modelli di vincolo

Quando installi Policy Controller, la libreria dei modelli di vincolo viene installata per impostazione predefinita. Il completamento dell'installazione può richiedere diversi minuti.

Per verificare che la libreria dei modelli sia installata, elenca tutti gli oggetti ConstraintTemplate:

kubectl get constrainttemplates

Dovresti vedere un output simile all'esempio seguente:

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

Quando un singolo modello di vincolo viene installato correttamente, il campo status.created è true.

Interazioni con Policy Controller con Anthos Config Management

Anthos Config Management gestisce le risorse essenziali per l'esecuzione di Policy Controller. Per evitare conflitti tra Anthos Config Management e Policy Controller, presta attenzione a cosa viene inserito nel repository Config Sync.

Quando utilizzi Policy Controller, tieni presente quanto segue:

  • Non puoi sincronizzare un modello di vincolo che fa parte della libreria di modelli, a meno che questa non venga disattivata.

  • Se vuoi sincronizzare la risorsa di configurazione archiviata nello spazio dei nomi gatekeeper-system, lo spazio dei nomi deve essere indefinito nel repository o corrispondere alla configurazione che verrà installata da Anthos Config Management.

  • Se lo spazio dei nomi gatekeeper-system viene rimosso dal repository di origine, Anthos Config Management potrebbe non essere in grado di recuperare. Per ripristinare, elimina la configurazione del webhook di convalida per Policy Controller.

Gestisci la libreria dei modelli di vincolo

Per informazioni sulla disinstallazione o sulla reinstallazione dei modelli di vincoli, sui vincoli associati o sulla libreria dei modelli di vincolo, consulta la sezione Creare vincoli.

Escludi spazi dei nomi dall'applicazione

Puoi configurare Policy Controller in modo da ignorare gli oggetti all'interno di uno spazio dei nomi. Per ulteriori informazioni, consulta la pagina Escludere gli spazi dei nomi da Policy Controller.

Modifica risorse

Policy Controller funge anche da webhook mutante. Per ulteriori informazioni, consulta la sezione Modificare le risorse.

Visualizza la versione di Policy Controller

Per scoprire quale versione di Gatekeeper Policy Controller utilizza, visualizza il tag immagine eseguendo questo comando:

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

Da Anthos Config Management versione 1.3.2 e successive, il tag Git (o hash) utilizzato per creare Gatekeeper e il numero di versione di Anthos Config Management sono inclusi nel tag immagine come segue:

.../gatekeeper:VERIOSN_NUMBER-GIT_TAG.gBUILD_NUMBER

Ad esempio, per la seguente immagine:

gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
  • anthos1.3.2 è il numero di versione.
  • 480baac è il tag Git.
  • 0 è il numero della build.

Puoi anche visualizzare un elenco di tutte le versioni di Anthos Config Management insieme al manifest corrispondente, all'installazione e alle versioni binari di nomos nella matrice della versione di release.

Esegui l'upgrade del controller dei criteri

Policy Controller viene aggiornato ogni volta che esegui l'upgrade di Anthos Config Management. Per scoprire di più, consulta Eseguire l'upgrade di Anthos Config Management.

Disinstalla Policy Controller

Segui questi passaggi per disinstallare Policy Controller dai tuoi cluster.

Console

Per disabilitare Policy Controller sui tuoi cluster, completa le seguenti attività:

  1. Nella console Google Cloud:
    • Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.

      Vai a Config Management

    • Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.

      Vai a Config Management

  2. Nella scheda Impostazioni, accanto al cluster in cui vuoi disabilitare Policy Controller, fai clic sul menu contestuale > Modifica configurazione.
  3. Deseleziona la casella di controllo Abilita Policy Controller.
  4. Fai clic su Completa.

gcloud

Per disinstallare Policy Controller:

  1. Modifica la configurazione di Anthos Config Management nel tuo apply-spec.yaml file e imposta policyController.enabled su false.

  2. Applica le modifiche nel file apply-spec.yaml:

     gcloud beta container fleet config-management apply \
         --membership=CLUSTER_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: aggiungi il cluster registrato a cui vuoi applicare questa configurazione.
    • CONFIG_YAML: aggiungi il percorso al file apply-spec.yaml.
    • PROJECT_ID: aggiungi il tuo ID progetto.

Dopo che Anthos Config Management rimuove il finalizzatore policycontroller.configmanagement.gke.io, la disinstallazione è completa.

Se vuoi disinstallare completamente Anthos Config Management, consulta la pagina Disinstallare Anthos Config Management.

Passaggi successivi