Aiutaci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Vuoi contribuire a questa guida per l'utente? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Implementazione scalabile dei pod con Horizontal Pod Autoscaler
Il Kubernetes Horizontal
Il Horizontal Pod Autoscaler è una risorsa API standard in Kubernetes ciò richiede semplicemente che una fonte di metriche (come la Kubernetes metrics server) è installato sul tuo cluster Amazon EKS per funzionare. Non è necessario distribuire o installare il Horizontal Pod Autoscaler sul cluster per iniziare a scalare le applicazioni. Per ulteriori informazioni, consulta Horizontal Pod Autoscaler
Utilizzate questo argomento per preparare il Horizontal Pod Autoscaler per il tuo cluster Amazon EKS e per verificare che funzioni con un'applicazione di esempio.
Nota
Questo argomento si basa sulla procedura dettagliata dell'autoscaler Horizontal Pod
-
Il cluster Amazon EKS è già esistente. Se non lo fai, vedi. Nozioni di base su Amazon EKS
-
Hai il Kubernetes Metrics Server installato. Per ulteriori informazioni, consulta Visualizza l'utilizzo delle risorse con KubernetesMetrics Server.
-
Stai utilizzando un client
kubectl
che è configurato per comunicare con il cluster Amazon EKS.
Esecuzione di un'applicazione di test di Horizontal Pod Autoscaler
In questa sezione implementerai un'applicazione di esempio per verificare il corretto funzionamento di Horizontal Pod Autoscaler.
Nota
Questo esempio si basa sulla procedura dettagliata dell'autoscaler Horizontal Pod
-
Implementa un'applicazione server Web Apache con il comando seguente.
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
Questo server web Apache Pod ha un limite di CPU di 500 millicpu e funziona sulla porta 80.
-
Crea una risorsa Horizontal Pod Autoscaler per l'implementazione di
php-apache
.kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
Questo comando crea un autoscaler che mira al 50% di utilizzo della CPU per la distribuzione, con un minimo di uno Pod e un massimo di dieci Pods. Quando il carico medio della CPU è inferiore al 50 percento, l'autoscaler cerca di ridurre il numero di Pods nella distribuzione, almeno uno. Quando il carico è superiore al 50 percento, l'autoscaler tenta di aumentare il numero di Pods nella distribuzione, fino a un massimo di dieci. Per ulteriori informazioni, vedi How does a HorizontalPodAutoscaler work?
nel Kubernetes documentazione. -
Descrivere il componente di scalabilità automatica con il comando seguente per visualizzarne i dettagli.
kubectl get hpa
Di seguito viene riportato un output di esempio:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 51s
Come puoi vedere, il carico attuale della CPU è
0%
, perché non c'è ancora carico sul server. Il Pod count è già al limite più basso (uno), quindi non può essere scalato. -
Crea un carico per il server web eseguendo un contenitore.
kubectl run -i \ --tty load-generator \ --rm --image=busybox \ --restart=Never \ -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
-
Per osservare l'incremento dell'implementazione, esegui periodicamente il seguente comando in un terminale separato dal terminale in cui hai eseguito il passaggio precedente.
kubectl get hpa php-apache
Di seguito viene riportato un output di esempio:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 250%/50% 1 10 5 4m44s
Potrebbe essere necessario più di un minuto per aumentare il numero di repliche. Finché la percentuale effettiva della CPU è superiore alla percentuale di destinazione, il conteggio delle repliche aumenta fino a 10. In questo caso, lo è
250%
, quindi il numero diREPLICAS
continua ad aumentare.Nota
Potrebbero essere necessari alcuni minuti prima che il numero di repliche raggiunga il limite massimo. Se, ad esempio, sono necessarie solo 6 repliche affinché il carico della CPU rimanga pari o inferiore al 50%, il carico non supererà le 6 repliche.
-
Arresta il carico. Nella finestra del terminale in cui stai generando il caricamento, interrompi il caricamento tenendo premuti i
Ctrl+C
tasti. Puoi vedere le repliche tornare a 1 eseguendo nuovamente il comando seguente nel terminale in cui stai guardando il ridimensionamento.kubectl get hpa
Di seguito viene riportato un output di esempio:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 25m
Nota
Il periodo di tempo di default per il ridimensionamento è di cinque minuti, quindi ci vorrà un po' di tempo prima di vedere il conteggio delle repliche raggiungere di nuovo 1, anche quando la percentuale corrente della CPU è 0. L'intervallo di tempo è modificabile. Per ulteriori informazioni, consulta Horizontal Pod Autoscaler
nel Kubernetes documentazione. -
Al termine dell'esercitazione con l'applicazione di esempio, elimina le risorse
php-apache
.kubectl delete deployment.apps/php-apache service/php-apache horizontalpodautoscaler.autoscaling/php-apache