No Cloud Run for Anthos, cada revisão é escalonada automaticamente para o número de instâncias de contêiner necessárias para processar todas as solicitações recebidas. Por padrão, quando uma revisão não recebe nenhum tráfego, ela é escalonada para zero instância de contêiner. No entanto, é possível alterar esse padrão para especificar que uma instância seja mantida inativa ou "morna" usando a configuração de instâncias mínimas.
O número de instâncias programadas é afetado pela:
- quantidade de CPU necessária para processar uma solicitação;
- configuração de simultaneidade;
- configuração do número máximo de instâncias de contêiner;
- configuração do número mínimo de instâncias de contêiner.
Em alguns casos, convém limitar o número total de instâncias de contêiner que podem ser iniciadas, por motivos de controle de custos ou para melhor compatibilidade com outros recursos usados pelo serviço. Por exemplo, seu serviço do Cloud Run for Anthos pode interagir com um banco de dados que só pode lidar com um determinado número de conexões abertas simultâneas.
Sobre o máximo de instâncias de contêiner
É possível usar a configuração máxima de instâncias de contêiner para limitar o número total de instâncias que podem ser iniciadas em paralelo, conforme documentado em Como configurar um número máximo de instâncias de contêiner.
Como exceder o máximo de instâncias
Em circunstâncias normais, a revisão é ampliada criando novas instâncias
para sustentar a carga do tráfego de entrada. No entanto, quando você define um limite máximo de instâncias,
em alguns cenários, não há instâncias suficientes para atender a essa carga de tráfego. Nesse caso, as solicitações de entrada serão enfileiradas por até 60 segundos. Durante essa janela de 60 segundos, se uma instância concluir o processamento de solicitações, ela ficará disponível para processar solicitações enfileiradas. Se nenhuma instância estiver disponível durante a janela de 60 segundos,
a solicitação falhará com um código de erro 429
no Cloud Run.
Garantias de escalonamento
O máximo de instâncias é um limite superior. Definir um limite alto não significa que a revisão será escalonada conforme o número especificado de instâncias de contêiner. Isso significa apenas que o número de instâncias de contêiner não pode exceder o limite em nenhum momento.
Picos de tráfego
Em alguns casos, como aumento rápido de tráfego, o Cloud Run for Anthos pode, por um curto período, criar um pouco mais instâncias de contêiner do que o valor especificado de instâncias máximas. Se o serviço não puder tolerar esse comportamento temporário, considere uma margem de segurança e defina um valor de instâncias máximas mais baixo.
Implantações
Quando você implanta uma nova revisão, o Cloud Run for Anthos migra gradualmente o tráfego da revisão antiga para a nova. Como os limites máximos de instâncias são definidos para cada revisão, é possível exceder temporariamente o limite especificado durante o período após a implantação.
Instâncias inativas e como minimizar inicializações a frio
Os recursos do Kubernetes só são consumidos quando uma instância está processando uma solicitação, mas isso não significa que o Cloud Run for Anthos encerra imediatamente as instâncias depois de processar todas as solicitações. Para minimizar o impacto das inicializações a frio, o Cloud Run for Anthos pode manter algumas instâncias inativas. Essas instâncias estão prontas para processar solicitações em caso de um pico repentino de tráfego.
Por exemplo, quando uma instância de contêiner termina de processar solicitações, ela pode permanecer inativa por um período caso outra solicitação precise ser processada. Uma instância de contêiner inativo pode manter os recursos, como conexões de banco de dados abertas. No entanto, para a Cloud Run, a CPU não estará disponível
Para manter as instâncias ociosas permanentemente disponíveis, use a
configuração min-instance
.
A seguir
- Para gerenciar o número máximo de instâncias dos serviços do Cloud Run for Anthos, consulte Como configurar um número máximo de instâncias de contêiner.
- Para gerenciar o número máximo de solicitações simultâneas processadas por cada instância de contêiner, consulte Como configurar a simultaneidade.
- Para otimizar sua configuração de simultaneidade, consulte as dicas de desenvolvimento para ajustar a simultaneidade.
- Para especificar que uma instância inativa continue em execução para minimizar a latência ou inicializações a frio nas primeiras solicitações, consulte Como usar
min-instance
para ativar instâncias inativas.