Trilhos horizontais de escalonamento automático em GKE - especificamente - opções e diferenças de servidores web com implementações convencionais

1

Aqui está uma ótima descrição sobre dimensionamento com heroku (e se aplica a implantações tradicionais).

Considerando que queremos que aplicativos em contêiner sejam processos únicos, como conseguimos:

  • proteção do cliente lento
  • proteção contra resposta lenta

em um ambiente Kubernetes / GKE que aproveita ao máximo o escalonamento automático de pod horizontal ?

Suponha que minha implantação se parece muito com o seguinte ( crédito @ nithinmallya4 ):

Ainda não selecionei um servidor da Web e, por padrão, rackup está veiculando WEBrick . Eu estava pensando em mudar isso para Puma multi-threaded.

Minha preocupação é que o autoscaler funcione com base na CPU, e não com base em uma ideia de que é consumed by a current http/s request , por isso talvez não entre em ação.

  1. Estou entendendo o autoescalador corretamente?
  2. Qual é a arquitetura up / down de escala ideal?

Nossas ideias atuais:

  • nginx em um padrão sidecar do pod (com um gzip deflater ) atrás de um Ingress .

  • puma na frente dos trilhos (no mesmo image como rails-api), supondo que seria melhor utilizar cpu e acionar a escala automática

  • métricas personalizadas para HPA (ainda é necessário pesquisar isso com 1.8)

por kross 19.09.2017 / 16:56

2 respostas

2

No GKE, oferecemos suporte a HPA com métricas personalizadas desde a versão 1.9. Se você tiver um grupo de pods com escalonamento automático horizontal em seu cluster, cada um exportando uma métrica personalizada, poderá definir uma média por destino do conjunto para essa métrica.

Um exemplo disso seria uma implementação de escalonamento automático de um frontend em que cada réplica exporta seu QPS atual. Pode-se definir a meta média de QPS por pod de front-end e usar o HPA para escalar a implantação para cima e para baixo de acordo. Você pode encontrar a documentação e um tutorial explicando como configurar isso aqui: link

O Kubernetes 1.10 disponível no GKE estenderá o suporte para métricas personalizadas para incluir métricas não anexadas a nenhum objeto do Kubernetes. Isso permitirá dimensionar uma implantação com base em qualquer métrica listada aqui, por exemplo, o número de mensagens na fila do Google Pub / Sub.

    
por 16.03.2018 / 12:40
1

HPA baseia-se na utilização da CPU. Você pode ativar o Escalonamento automático de cluster no GKE (atualmente em beta) para ajustar o tamanho de um cluster do Kubernetes com base na carga de trabalho. Para informações mais detalhadas, consulte o autoescalador de cluster Perguntas frequentes no github .

    
por 28.09.2017 / 22:42