Configura un cluster e un carico di lavoro per la gestione temporanea


Sebbene i cluster GKE in modalità Autopilot forniscano valori predefiniti ragionevoli per la maggior parte delle impostazioni, è probabile che tu abbia bisogno di impostazioni diverse negli ambienti di sviluppo, di staging e di produzione.

Obiettivi

Scopri alcune attività di base per configurare un cluster temporaneo e di test:

  1. Limita l'accesso al servizio amministrativo del cluster, chiamato piano di controllo. In questo modo gli utenti non autorizzati non possono visualizzare o modificare le impostazioni del cluster e del carico di lavoro.

  2. Specifica che la tua app ha bisogno di risorse di calcolo che facciano lo scale up o scale down in modo efficiente per soddisfare la domanda.

  3. Testa la scalabilità automatica per replicare automaticamente i pod quando la domanda aumenta oltre una soglia specificata.

  4. Regola la conservazione dei log in modo da mantenere solo i log necessari.

  5. Abilita la dashboard della postura di sicurezza di GKE.

Queste sono solo alcune delle attività per promuovere un cluster dallo sviluppo alla gestione temporanea. Leggi la documentazione di GKE per l'elenco completo delle attività da prendere in considerazione.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


Costi

In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

Prima di iniziare

Crea un cluster Kubernetes ed esegui il deployment di un carico di lavoro. Per scoprire come, consulta l'articolo Creare un cluster ed eseguire il deployment di un carico di lavoro.

Limita l'accesso al control plane

Per migliorare la tua postura di sicurezza, consenti solo a una rete autorizzata, a Google Cloud Console e a Cloud Shell di accedere al piano di controllo del tuo cluster.

Configura una rete autorizzata

  1. Nella console Google Cloud, vai alla pagina Cluster di GKE.

    Vai a Cluster

  2. Nella colonna Nome, fai clic sul nome del tuo cluster, ovvero hello-world-cluster.

  3. Nella riga Reti autorizzate piano di controllo della tabella Networking, fai clic su Modifica.

  4. Nella finestra di dialogo Modifica reti autorizzate piano di controllo, seleziona Abilita reti autorizzate piano di controllo.

  5. Seleziona Consenti accesso tramite indirizzi IP pubblici di Google Cloud.

    In questo modo puoi gestire il cluster dalla console Google Cloud e da Cloud Shell

  6. Fai clic su Aggiungi rete autorizzata.

  7. Inserisci un nome, ad esempio La mia rete on-prem di esempio.

  8. In Rete, inserisci l'intervallo di indirizzi IP a cui vuoi concedere l'accesso al piano di controllo del tuo cluster. Utilizza la notazione CIDR.

    Ad esempio, inserisci il seguente intervallo:

    198.51.100.0/24
    
  9. Fai clic su Fine.

  10. Fai clic su Salva modifiche.

    Il completamento dell'operazione richiede alcuni minuti.

  11. Fai clic sul pulsante Notifiche e attendi finché non visualizzi un segno di spunta verde accanto ad Aggiorna l'impostazione delle reti autorizzate del piano di controllo nel cluster "hello-world-cluster" di Kubernetes Engine.

Hai configurato un control plane del cluster accessibile solo dalla tua rete autorizzata e dagli indirizzi IP pubblici di Google Cloud, in modo da gestire il cluster dalla console Google Cloud e da Cloud Shell.

Per visualizzare l'indirizzo IP del piano di controllo del cluster e confermare gli indirizzi della rete autorizzata, fai clic su Avanti.

Visualizza gli indirizzi IP

  1. Vai alla pagina Cluster di GKE.

    Vai a Cluster

  2. Nella colonna Nome, fai clic sul nome del tuo cluster, ovvero hello-world-cluster.

  3. Nella tabella Impostazioni di base del cluster, la riga Endpoint esterno mostra l'indirizzo IP del piano di controllo del cluster.

  4. Nella tabella Networking, la riga Reti autorizzate piano di controllo mostra gli indirizzi IP della tua rete autorizzata.

È possibile accedere al piano di controllo del cluster solo da una rete autorizzata, dalla console Google Cloud e da Cloud Shell.

Specifica una classe di computing

Per impostazione predefinita, i pod GKE Autopilot utilizzano risorse di calcolo ottimizzate per carichi di lavoro generici. Per i carichi di lavoro che devono scalare in modo ottimale o che hanno altri requisiti unici, puoi specificare una classe di calcolo diversa.

Aggiorna la specifica del deployment

  1. Nella console Google Cloud, vai alla pagina Carichi di lavoro di GKE.

    Vai a Carichi di lavoro

  2. Nella colonna Nome, fai clic sul nome dell'app di cui hai eseguito il deployment, ovvero hello-world-app.

  3. Fai clic su Modifica per modificare le specifiche del deployment.

  4. Nella scheda YAML, trova la riga che inizia con containers:

  5. Appena sopra questa riga, aggiungi le seguenti righe:

    nodeSelector:
      cloud.google.com/compute-class: "Scale-Out"
    

    Assicurati che il file corrisponda al testo rientrato nell'esempio seguente:

    apiVersion: apps/v1
     kind: Deployment
     ...
     spec:
     ...
       template:
       ...
         spec:
           nodeSelector:
             cloud.google.com/compute-class: "Scale-Out"
           containers:
           - name: hello-app
             image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    
  6. Per scaricare questo file e utilizzarlo come base per altre configurazioni del carico di lavoro, fai clic su Scarica.

  7. Fai clic su Salva.

Qualsiasi replica dei pod creata per eseguire il tuo carico di lavoro utilizzerà la classe di calcolo specificata.

Test della scalabilità automatica

Ora che hai un carico di lavoro che può essere scalato in modo efficiente, aggiorna le impostazioni di scalabilità automatica per eseguire più facilmente lo scale up del carico di lavoro. Quindi genera un carico per attivare la scalabilità automatica.

Aggiorna le impostazioni di scalabilità automatica dei pod

  1. Vai alla pagina Carichi di lavoro di GKE.

    Vai a Carichi di lavoro

  2. Nella colonna Nome, fai clic sul nome del deployment, ovvero hello-world-app.

  3. Fai clic su Azioni.

  4. Seleziona Scalabilità automatica e fai clic su Scalabilità automatica orizzontale dei pod.

  5. Nella finestra di dialogo Configura Horizontal Pod Autoscaler, in Metriche di scalabilità automatica, fai clic su CPU.

  6. Modifica il valore di Target su 2, in modo che venga eseguito automaticamente lo scale up dei pod quando utilizzano almeno il 2% delle risorse CPU configurate. Questo valore target basso consente di attivare facilmente la scalabilità automatica nel passaggio successivo.

  7. Fai clic su Salva.

Per attivare la scalabilità automatica, fai clic su Avanti.

Genera un carico per attivare la scalabilità automatica

  1. Apri Cloud Shell facendo clic su Cloud Shell.

  2. Copia il comando seguente in Cloud Shell:

      for i in $(seq -s' ' 1 10000); do wget -q -O- <var>external-IP-address</var>; done
    

    Sostituisci external-IP-address con l'indirizzo IP visualizzato nel Endpoint colonna.

  3. Premi Invio per eseguire il comando e inviare 10.000 richieste a hello-world-app.

  4. Attendi il completamento dell'esecuzione del comando wget e che il prompt della riga di comando venga visualizzato di nuovo.

  5. Puoi chiudere Cloud Shell al termine del comando wget.

Per controllare come viene scalato il carico di lavoro per far fronte all'aumento del traffico, fai clic su Avanti.

Osserva come viene scalato il carico di lavoro

  1. Nella pagina Dettagli deployment del carico di lavoro, cerca un picco di utilizzo della CPU nel grafico CPU.

    Potrebbe essere necessario attendere fino a 5 minuti per vedere il picco.

  2. Fai clic su Aggiorna per assicurarti che la pagina Dettagli deployment mostri i dati più recenti.

  3. Cerca nella tabella Pod gestiti per vedere che tre repliche del tuo carico di lavoro sono ora in esecuzione.

    Inizialmente potresti vedere errori relativi ai pod non pianificabili, ma questi messaggi sono temporanei mentre le repliche vengono avviate.

  4. Puoi attendere circa 10 minuti, fare clic su Aggiorna e vedere che l'utilizzo della CPU è diminuito e, di conseguenza, il numero di pod in Pod gestiti torna a essere uno.

Hai testato la scalabilità automatica e osservato come viene scalato il carico di lavoro.

Regola la conservazione dei log

Per impostazione predefinita, Cloud Logging importa tutti i log dai cluster GKE. L'importazione di grandi quantità di dati di log potrebbe comportare una tariffa. Per garantire che stai importando solo i dati dei log necessari per l'ambiente di gestione temporanea, e regolare la conservazione dei log.

Crea un filtro dei log

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    Nota che il riquadro Risultati delle query mostra i log di tutte le risorse nel tuo progetto.

  2. Sopra i risultati della query:

    1. Fai clic su Risorsa.

    2. Cerca e e fai clic su Cluster Kubernetes.

    3. Fai clic su us-central-1.

    4. Fai clic su hello-world-cluster.

    5. Fai clic su Applica.

  3. Fai clic su Gravità e seleziona Informazioni (che diventa A livello di informazioni e superiori al passaggio del mouse).

  4. Fai clic su Esegui query.

  5. Tieni presente che i risultati della query ora contengono solo messaggi INFO del cluster temporaneo.

  6. Copia la query dall'Editor query. Incolla questa query quando crei un filtro per il sink di log.

Per creare un sink di log e un bucket di archiviazione, fai clic su Avanti.

Crea un sink di log e un bucket di archiviazione

  1. Vai alla pagina Router dei log di Logging.

    Vai a Router dei log

  2. Fai clic su Crea sink.

  3. Inserisci il seguente nome in Nome:

    hello-world-cluster-sink
    
  4. Fai clic su Avanti.

  5. In Seleziona il servizio sink, seleziona Bucket di Logging.

  6. In Seleziona un bucket di log, scegli Crea nuovo bucket di log.

  7. In Dettagli bucket, inserisci un nome univoco, ad esempio:

    hello-world-bucket-<var>user-id</var>
    
  8. Fai clic su Crea bucket.

  9. In Destinazione sink, fai clic su Avanti.

  10. In Crea filtro di inclusione, incolla la query che hai creato in Esplora log.

  11. Fai clic su Crea sink.

Per visualizzare i log del cluster, che sono archiviati nel bucket dei log che hai creato fai clic su Avanti.

Visualizza i log del cluster

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Fai clic su Perfeziona ambito.

  3. Seleziona Vista di log.

  4. Seleziona la visualizzazione _AllLogs per il bucket di log.

  5. Fai clic su Applica.

    Risultati delle query mostra solo i log archiviati nel bucket di log.

Hai modificato la conservazione dei log in modo che il cluster di gestione temporanea non memorizzi i messaggi DEBUG. Puoi impostare le autorizzazioni in modo che solo alcuni utenti possano visualizzare i log nel bucket del cluster.

Attiva la dashboard sulla security posture

La dashboard sulla postura di sicurezza scansiona i cluster e i carichi di lavoro GKE per fornire suggerimenti attendibili e strategici al fine di migliorare la postura di sicurezza.

Esplora qualsiasi problema

  1. Vai alla pagina Postura di sicurezza di GKE.

    Vai a Postura di sicurezza

  2. Se ti viene richiesto di abilitare l'API Container Security, fai clic su Abilita.

  3. La scheda Dashboard riassume i problemi relativi ai cluster del progetto e carichi di lavoro con scale out impegnativi.

  4. Fai clic sulla scheda Problemi.

  5. Se nella scheda sono visualizzati dei problemi, fai clic sul problema per avere ulteriori informazioni.

Hai completato alcune attività di base per configurare un cluster per la gestione temporanea e il test della tua app.

Passaggi successivi