Voglio aumentare/ridurre il numero di macchine per aumentare/diminuire il numero di nodi nel mio cluster Kubernetes. Quando aggiungo una macchina, sono in grado di registrarla con successo con Kubernetes; pertanto, un nuovo nodo viene creato come previsto. Tuttavia, non mi è chiaro come spegnere la macchina in un secondo momento. Un buon flusso di lavoro potrebbe essere:Come rimuovere con garbo un nodo da Kubernetes?
- Contrassegnare il nodo correlato alla macchina che verrà disattivato come non programmabile;
- Avviare il/i pod in esecuzione nel nodo in altri nodi;
- Elimina con garbo il pod (i) in esecuzione nel nodo;
- Elimina il nodo.
Se ho capito bene, anche kubectl drain
(discussion) non fa quello che mi aspetto dal momento che non viene avviato i baccelli prima di eliminarli (si basa su un controller di replica per avviare i baccelli in seguito che può causare tempi di inattività). Mi sto perdendo qualcosa?
Come devo arrestare correttamente una macchina?
Attualmente sto valutando Kubernetes in un ambiente separato in cui ho un sacco di istanze EC2 con diverse applicazioni/pod. Capisco che non dovrei eseguire applicazioni come singole repliche. Ma non ho intenzione di eseguire un numero enorme di repliche per ogni applicazione; pertanto, la perdita di una replica influirebbe sulla capacità complessiva dell'applicazione. Anche se alla fine potrò conviverci, non penso che sia un approccio ragionevole se è causato da un'azione pianificata come ridimensionare il numero di macchine (nodi). – Rafael
Si scopre che Kubernetes lo farà correttamente, purché imposti un periodo di prova appropriato, abbia un readinessProbe e gestisca SIGTERM correttamente. https://github.com/kubernetes/kubernetes/issues/20473 copre un problema simile (dal punto di vista di un aggiornamento continuo). Fammi sapere se hai bisogno di più specifiche e sarò felice di aiutarti. –
Grazie. Ho intenzione di eseguire alcuni test. – Rafael