Este documento descreve 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 responsáveis por gerenciar cargas de trabalho de aplicativos na 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, você precisa dos seguintes recursos e papéis:
Para executar comandos em um cluster do Kubernetes, 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.
Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Para receber as permissões necessárias para escalonar cargas de trabalho sem estado em um cluster compartilhado, 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.Para receber as permissões necessárias para escalonar cargas de trabalho sem estado em um cluster padrão, peça ao administrador do IAM da organização para conceder a você o papel de desenvolvedor de cluster (
cluster-developer) em um cluster padrão.
Escalonar uma implantação
Use 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. Siga estas etapas para fazer o escalonamento automático dos pods da sua implantação:
Para garantir que o escalonador automático de pods horizontal possa medir adequadamente a porcentagem de CPU, defina a solicitação de recurso de CPU na sua implantação.
Defina o escalonador automático horizontal de pods na sua 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, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.DEPLOYMENT_NAME: o nome da implantação a ser escalonada automaticamente.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.
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 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. Para clusters compartilhados, esse precisa ser um namespace do projeto. Para clusters padrão, pode ser qualquer namespace.DEPLOYMENT_NAME: o nome da implantação em que fazer o escalonamento automático.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