Bilanciamento della disponibilità e dei costi del servizio durante il ciclo dei nodi gestiti nei pool di nodi

Scopri come bilanciare la disponibilità e i costi del servizio durante il ciclo dei nodi gestiti nei pool di nodi creati utilizzando Kubernetes Engine (OKE).

Quando si esegue il ciclismo dei nodi gestiti nei pool di nodi per sostituire i volumi di avvio o per arrestare e sostituire i nodi, Kubernetes Engine collega automaticamente i nodi esistenti per renderli non disponibili e scarica i nodi (utilizzando le impostazioni Cordon e drenaggio specificate per il pool di nodi).

Puoi personalizzare il comportamento di Kubernetes Engine per soddisfare i tuoi requisiti di disponibilità e costi del servizio come segue:

  • Quando si sostituiscono i volumi di avvio e quando si terminano e sostituiscono i nodi, è possibile specificare il numero di nodi da rendere non disponibili durante l'operazione (indicato come Massimo non disponibile o maxUnavailable in breve). Maggiore è il numero di nodi che consenti di non essere disponibili, maggiore è il numero di nodi che Kubernetes Engine può aggiornare in parallelo senza aumentare i costi. Tuttavia, maggiore è il numero di nodi che si consente di non essere disponibili, maggiore sarà la disponibilità del servizio.
  • Quando si terminano e si sostituiscono i nodi, è possibile specificare il numero di nodi aggiuntivi da consentire temporaneamente durante l'operazione di aggiornamento (indicato come aumento massimo o maxSurge in breve). Maggiore è il numero di nodi aggiuntivi consentiti, maggiore è il numero di nodi che Kubernetes Engine può aggiornare in parallelo senza compromettere la disponibilità del servizio. Tuttavia, maggiore è il numero di nodi aggiuntivi consentiti, maggiore è il costo.

Per maxUnavailable e maxSurge, è possibile specificare il numero consentito di nodi come numero intero o come percentuale del numero di nodi visualizzato nella proprietà Conteggio nodi del pool di nodi nella console (la proprietà Dimensione del pool di nodi nell'API).

Quando si terminano e si sostituiscono i nodi, se non si specificano in modo esplicito i numeri consentiti per nodi aggiuntivi (maxSurge) e non disponibili (maxUnavailable), si applica quanto riportato di seguito.

  • Se non si specifica un valore per maxSurge o maxUnavailable, il valore predefinito di maxSurge è 1 e il valore predefinito di maxUnavailable è 0.
  • Se si specifica solo un valore per maxSurge, il valore predefinito di maxUnavailable è 0.
  • Se si specifica solo un valore per maxUnavailable, il valore predefinito di maxSurge è 1.
  • Non è possibile specificare 0 come numero consentito per entrambi i nodi aggiuntivi (maxSurge) e non disponibili (maxUnavailable).

Quando si sostituiscono i volumi di avvio, se non si specifica in modo esplicito un numero consentito per i nodi non disponibili (maxUnavailable), viene applicato quanto riportato di seguito.

  • Se non si specifica un valore per maxUnavailable, il valore predefinito di maxUnavailable è 1.
  • Non è possibile specificare 0 come numero consentito per maxUnavailable.

Tenere presente quanto riportato di seguito.

  • Al termine dell'operazione, il numero di nodi nel pool di nodi torna al numero specificato dalla proprietà Conteggio nodi del pool di nodi visualizzata nella console (la proprietà Dimensione del pool di nodi nell'API).
  • Quando si terminano e si sostituiscono i nodi, se si specifica un valore per maxSurge durante l'operazione, la tenancy deve avere una quota sufficiente per il numero di nodi aggiuntivi specificati.
  • Quando si specifica un valore per maxUnavailable, se il pool di nodi non può rendere non disponibile tale numero di nodi (ad esempio, a causa di un budget di interruzione del pod), l'operazione non riesce.
  • Se si immette una percentuale come valore di maxUnavailable, Kubernetes Engine arrotonda la percentuale al numero intero più vicino durante il calcolo del numero consentito di nodi.
  • Quando si aggiornano pool di nodi di grandi dimensioni, tenere presente che i valori specificati per maxUnavailable potrebbero comportare tempi di ciclo eccessivamente lunghi. Ad esempio, se si specifica 1 come valore per maxUnavailable quando si cicla i nodi di un pool di nodi con 1000 nodi, Kubernetes Engine potrebbe richiedere diversi giorni per eseguire il ciclo di tutti i nodi nel pool di nodi. Se l'operazione di ciclo del nodo non viene completata entro 30 giorni, lo stato della richiesta di lavoro associata viene impostato su Non riuscito. Sottomettere un'altra richiesta di ciclo dei nodi per riprendere l'operazione.
  • Quando si esegue il ciclismo dei nodi gestiti in un pool di nodi per eseguire lo scale down del pool di nodi, tenere presente che il numero di nodi nel pool di nodi potrebbe essere ridotto al numero specificato come valore per maxUnavailable. Di conseguenza, le operazioni successive potrebbero ridurre il numero di nodi disponibili al di sotto di quello previsto, compromettendo la disponibilità del servizio e influendo sui carichi di lavoro. In tali situazioni, procedere con cautela e potenzialmente valutare la possibilità di ridurre il valore maxUnavailable.