Scalare i carichi di lavoro stateless

Questo documento descrive come scalare i workload stateless esistenti in esecuzione in un cluster Kubernetes Google Distributed Cloud (GDC) con air gap. Devi scalare i pod in esecuzione nei workload stateless man mano che i requisiti dei workload containerizzati si evolvono.

Questo documento è rivolto agli sviluppatori del gruppo di operatori di applicazioni responsabili della gestione dei workload delle applicazioni per la propria organizzazione. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per 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 workload stateless. I ruoli necessari dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito a livello di organizzazione o di un cluster standard con ambito a livello di progetto. Per saperne di più, consulta Configurazioni dei cluster Kubernetes.

Ruoli cluster condivisi

Per creare, eliminare, modificare o visualizzare i workload in un cluster condiviso, chiedi all'amministratore del progetto IAM di concederti il ruolo Namespace Admin (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.

Ruoli cluster standard

Per creare, eliminare, modificare o visualizzare i workload in un cluster standard, chiedi all'amministratore IAM del progetto di concederti il ruolo Sviluppatore cluster (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_KUBECONFIG in queste istruzioni.

Scala un deployment

Utilizza la funzionalità di scalabilità di Kubernetes per scalare in modo appropriato la quantità di pod in esecuzione nel tuo 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 evolve. Completa i seguenti passaggi per scalare automaticamente i pod del tuo deployment:

  1. Per assicurarti che l'autoscaler orizzontale dei pod possa misurare correttamente la percentuale di CPU, imposta la richiesta di risorse della CPU sul tuo deployment.

  2. Imposta il gestore della scalabilità automatica orizzontale dei pod nel tuo deployment:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    Sostituisci quanto segue:

    • KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig del 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 della CPU target da richiedere, rappresentato come percentuale, su tutti i pod.

    • MIN_NUMBER_REPLICAS: il limite minimo per il numero di pod di cui il gestore della scalabilità automatica può eseguire il provisioning.

    • MAX_NUMBER_REPLICAS: il limite massimo per il numero di pod di cui il gestore della scalabilità automatica può eseguire il provisioning.

  3. Controlla lo stato attuale del gestore della scalabilità automatica orizzontale dei pod:

    kubectl get hpa
    

    L'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 del 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 oggetti Pod replicati nel deployment.

Passaggi successivi