Questo documento descrive come scalare i carichi di lavoro stateless esistenti in esecuzione in un cluster Kubernetes air-gapped di Google Distributed Cloud (GDC). Devi scalare i pod in esecuzione nei carichi di lavoro stateless man mano che i requisiti dei carichi di lavoro containerizzati si evolvono.
Questo documento è rivolto agli sviluppatori del gruppo di operatori di applicazioni responsabili della gestione dei carichi di lavoro delle applicazioni per la propria organizzazione. Per saperne di più, consulta la sezione Pubblico della documentazione GDC con air gap.
Prima di iniziare
Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per scalare i carichi di lavoro stateless. I ruoli richiesti dipendono dal fatto che tu stia lavorando in un cluster condiviso con ambito organizzazione o in un cluster standard con ambito progetto. Per saperne di più, consulta la sezione Configurazione dei cluster Kubernetes.
Ruoli del cluster condiviso
Per creare, eliminare, modificare o visualizzare i carichi di lavoro in un cluster condiviso, chiedi all'amministratore IAM del progetto di concederti il ruolo Namespace Admin (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.
Ruoli del cluster standard
Per creare, eliminare, modificare o visualizzare i carichi di lavoro in un cluster standard, chiedi all'amministratore IAM del progetto di concederti il ruolo Cluster Developer (cluster-developer). Questo ruolo è associato allo spazio dei nomi del progetto.
Prepara l'ambiente
Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.
Accedi e genera il file kubeconfig per il cluster Kubernetes.
Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire
KUBERNETES_CLUSTER_KUBECONFIGin queste istruzioni.
Scala un deployment
Utilizza la funzionalità di scalabilità di Kubernetes per scalare in modo appropriato la quantità di pod in esecuzione nel deployment.
Scala automaticamente i pod di un deployment
Kubernetes offre la scalabilità automatica per eliminare la necessità di aggiornare manualmente il deployment quando la domanda si evolve. Completa i seguenti passaggi per scalare automaticamente i pod del deployment:
Per assicurarti che la scalabilità automatica orizzontale dei pod possa misurare correttamente la percentuale di CPU, imposta la richiesta di risorse CPU nel deployment.
Imposta la scalabilità automatica orizzontale dei pod nel deployment:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ -n NAMESPACE \ autoscale deployment DEPLOYMENT_NAME \ --cpu-percent=CPU_PERCENT \ --min=MIN_NUMBER_REPLICAS \ --max=MAX_NUMBER_REPLICASSostituisci quanto segue:
KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster.NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.DEPLOYMENT_NAME: il nome del deployment da scalare automaticamente.CPU_PERCENT: l'utilizzo medio target della CPU da richiedere, espresso in percentuale, in tutti i pod.MIN_NUMBER_REPLICAS: il limite inferiore per il numero di pod di cui il gestore della scalabilità automatica può eseguire il provisioning.MAX_NUMBER_REPLICAS: il limite superiore per il numero di pod di cui il gestore della scalabilità automatica può eseguire il provisioning.
Controlla lo stato attuale della scalabilità automatica orizzontale dei pod:
kubectl get hpaL'output è simile al seguente:
NAME REFERENCE TARGET MINPODS MAXPODS REPLICAS AGE DEPLOYMENT_NAME Deployment/DEPLOYMENT_NAME/scale 0% / 50% 1 10 1 18s
Scala manualmente i pod di un deployment
Se preferisci scalare manualmente un deployment, esegui:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
-n NAMESPACE \
scale deployment DEPLOYMENT_NAME \
--replicas NUMBER_OF_REPLICAS
Sostituisci quanto segue:
KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster.NAMESPACE: lo spazio dei nomi. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.DEPLOYMENT_NAME: il nome del deployment in cui eseguire la scalabilità automatica.DEPLOYMENT_NAME: il numero di oggettiPodreplicati nel deployment.
Passaggi successivi
- Esamina i carichi di lavoro stateless
- Aggiorna i carichi di lavoro stateless
- Gestisci i pool di nodi