Este documento descreve como dimensionar cargas de trabalho sem estado existentes executadas num cluster do Kubernetes isolado do ar do Google Distributed Cloud (GDC). Tem de dimensionar os pods em execução nas suas cargas de trabalho sem estado à medida que os requisitos da carga de trabalho do contentor evoluem.
Este documento destina-se a programadores no grupo de operadores de aplicações que são responsáveis pela gestão das cargas de trabalho das aplicações para a respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para concluir as tarefas neste documento, tem de ter os seguintes recursos e funções:
Para executar comandos num cluster do Kubernetes, certifique-se de que 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.
Inicie sessão e gere o ficheiro kubeconfig para o cluster do Kubernetes, se não tiver um.
Use o caminho kubeconfig do cluster Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Para receber as autorizações necessárias para dimensionar cargas de trabalho sem estado num cluster partilhado, peça ao administrador de IAM da organização que lhe conceda a função de administrador do espaço de nomes (
namespace-admin) no espaço de nomes do projeto.Para receber as autorizações necessárias para dimensionar cargas de trabalho sem estado num cluster padrão, peça ao administrador de IAM da organização para lhe conceder a função de programador de clusters (
cluster-developer) num cluster padrão.
Dimensiona uma implementação
Use a funcionalidade de escalabilidade do Kubernetes para dimensionar adequadamente a quantidade de pods em execução na sua implementação.
Escalone automaticamente os pods de uma implementação
O Kubernetes oferece a escala automática para eliminar a necessidade de atualizar manualmente a sua implementação quando a procura evolui. Conclua os passos seguintes para ajustar automaticamente a escala dos pods da sua implementação:
Para garantir que o escalador automático de agrupamentos horizontal pode medir adequadamente a percentagem de CPU, defina o pedido de recursos de CPU na sua implementação.
Defina o redimensionador automático de pods horizontal na sua implementação:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \ -n NAMESPACE \ autoscale deployment DEPLOYMENT_NAME \ --cpu-percent=CPU_PERCENT \ --min=MIN_NUMBER_REPLICAS \ --max=MAX_NUMBER_REPLICASSubstitua o seguinte:
KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.DEPLOYMENT_NAME: o nome da implementação para ajustar automaticamente a escala.CPU_PERCENT: a utilização média da CPU alvo a pedir, representada como uma percentagem, em todos os pods.MIN_NUMBER_REPLICAS: o limite inferior para o número de agrupamentos que o redimensionador automático pode aprovisionar.MAX_NUMBER_REPLICAS: o limite superior para o número de agrupamentos que o escalador automático pode aprovisionar.
Verifique o estado atual do Horizontal Pod Autoscaler:
kubectl get hpaO resultado é semelhante ao seguinte:
NAME REFERENCE TARGET MINPODS MAXPODS REPLICAS AGE DEPLOYMENT_NAME Deployment/DEPLOYMENT_NAME/scale 0% / 50% 1 10 1 18s
Dimensione manualmente os pods de uma implementação
Se preferir dimensionar manualmente uma implementação, execute o seguinte comando:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
-n NAMESPACE \
scale deployment DEPLOYMENT_NAME \
--replicas NUMBER_OF_REPLICAS
Substitua o seguinte:
KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.NAMESPACE: o espaço de nomes. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.DEPLOYMENT_NAME: o nome da implementação na qual fazer o ajuste de escala automático.DEPLOYMENT_NAME: o número de objetos replicados na implementação.Pod
O que se segue?
- Inspecione cargas de trabalho sem estado
- Atualize cargas de trabalho sem estado
- Faça a gestão dos node pools