Neste documento, descrevemos como escalonar cargas de trabalho sem estado em execução em um cluster do Kubernetes do Google Distributed Cloud (GDC) com isolamento físico. É 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 que são responsáveis por gerenciar cargas de trabalho de aplicativos para a organização. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para concluir as tarefas neste documento, solicite as permissões necessárias e prepare seu ambiente.
Solicitar papéis do IAM
É preciso ter papéis específicos para receber as permissões necessárias para escalonar cargas de trabalho sem estado. Os papéis necessários dependem de você estar trabalhando em um cluster compartilhado com escopo de organização ou em um cluster padrão com escopo de projeto. Para mais informações, consulte Configurações de cluster do Kubernetes.
Papéis de cluster compartilhados
Para criar, excluir, editar ou visualizar cargas de trabalho em um cluster compartilhado, peça ao administrador do projeto do IAM para conceder a você o papel de Administrador de namespace (namespace-admin).
Esse
papel está vinculado ao namespace do projeto.
Papéis de cluster padrão
Para criar, excluir, editar ou visualizar cargas de trabalho em um cluster padrão, peça ao
administrador do projeto do IAM para conceder a você o papel de desenvolvedor de cluster (cluster-developer). Esse papel está vinculado ao namespace do projeto.
Preparar o ambiente
Para executar comandos em um cluster do Kubernetes usando a API, verifique se você tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma qual é o nome do cluster.
Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes.
Use o caminho do kubeconfig do cluster do Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Escalonar uma implantação
Use a funcionalidade de escalonamento do Kubernetes para escalonar adequadamente a quantidade de pods em execução na 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. Siga estas etapas para fazer o escalonamento automático dos pods da implantação:
Para garantir que o autoescalonador horizontal de pods possa medir adequadamente a porcentagem de CPU, defina a solicitação de recurso de CPU na implantação.
Defina o Autoescalonador Horizontal de Pods na implantação:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ -n NAMESPACE \ autoscale deployment DEPLOYMENT_NAME \ --cpu-percent=CPU_PERCENT \ --min=MIN_NUMBER_REPLICAS \ --max=MAX_NUMBER_REPLICASSubstitua:
KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.NAMESPACE: o namespace. Para clusters compartilhados, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.DEPLOYMENT_NAME: o nome da implantação que será escalonada automaticamente.CPU_PERCENT: a média desejada de utilização 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.
Verifique o status atual do escalonador automático horizontal de pods:
kubectl get hpaO resultado será o seguinte:
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 preferir escalonar manualmente uma implantação, 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. Para clusters compartilhados, precisa ser um namespace de projeto. Para clusters padrão, pode ser qualquer namespace.DEPLOYMENT_NAME: o nome da implantação em que o escalonamento automático será feito.DEPLOYMENT_NAME: o número de objetosPodreplicados na implantação.
A seguir
- Inspecionar cargas de trabalho sem estado
- Atualizar cargas de trabalho sem estado
- Gerenciar pools de nós