Escalonar cargas de trabalho sem estado

Este documento descreve como escalonar cargas de trabalho sem estado em execução em um cluster do Kubernetes isolado do Google Distributed Cloud (GDC). É necessário escalonar os pods em execução nas cargas de trabalho sem estado à medida que os requisitos de carga de trabalho do contêiner evoluem.

Este documento é destinado a desenvolvedores do grupo de operadores de aplicativos responsáveis por gerenciar cargas de trabalho de aplicativos na organização. Para mais informações, consulte Públicos-alvo da documentação isolada do GDC.

Antes de começar

Para executar comandos em um cluster do Kubernetes, verifique se você tem os seguintes recursos:

  1. Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma.

  2. Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.

  3. Use o caminho kubeconfig do cluster do Kubernetes para substituir KUBERNETES_CLUSTER_KUBECONFIG nestas instruções.

Para receber as permissões necessárias para escalonar cargas de trabalho sem estado, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (namespace-admin) no namespace do projeto.

Escalonar uma implantação

Aproveite a funcionalidade de escalonamento do Kubernetes para dimensionar adequadamente a quantidade de pods em execução na sua implantação.

Fazer o escalonamento automático dos pods de uma implantação

O Kubernetes oferece escalonamento automático para eliminar a necessidade de atualizar manualmente sua implantação quando a demanda evolui. Defina o escalonador automático horizontal de pods na sua implantação para ativar esse recurso:

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

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

  • NAMESPACE: o namespace do projeto.

  • DEPLOYMENT_NAME: o nome da implantação em que fazer o escalonamento automático.

  • CPU_PERCENT: a meta de uso médio da CPU a ser solicitada, representada como uma porcentagem, em todos os pods.

  • MIN_NUMBER_REPLICAS: o limite inferior para o número de pods que o escalonador automático pode provisionar.

  • MAX_NUMBER_REPLICAS: o limite superior para o número de pods que o escalonador automático pode provisionar.

Para verificar o status atual do escalonador automático horizontal de pods recém-criado, execute:

kubectl get hpa

O resultado será assim:

NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s

Escalonar manualmente os pods de uma implantação

Se você preferir escalonar uma implantação manualmente, execute:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

Substitua:

  • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

  • NAMESPACE: o namespace do projeto.

  • DEPLOYMENT_NAME: o nome da implantação em que fazer o escalonamento automático.

  • DEPLOYMENT_NAME: o número desejado de objetos Pod replicados na implantação.