Escala automática de instâncias de contentores

No Knative serving, cada revisão é automaticamente dimensionada para o número de instâncias de contentores necessárias para processar todos os pedidos recebidos. Quando uma revisão não recebe tráfego, por predefinição, é dimensionada para zero instâncias de contentores. No entanto, se quiser, pode alterar esta predefinição para especificar uma instância a manter inativa ou "ativa" através da definição minimum instances (instâncias mínimas).

O número de instâncias agendadas é afetado pelos seguintes fatores:

Em alguns casos, pode querer limitar o número total de instâncias de contentores que podem ser iniciadas, por motivos de controlo de custos ou para uma melhor compatibilidade com outros recursos usados pelo seu serviço. Por exemplo, o seu serviço Knative serving pode interagir com uma base de dados que só consegue processar um determinado número de ligações abertas em simultâneo.

Acerca do número máximo de instâncias de contentores

Pode usar a definição de instâncias máximas do contentor para limitar o número total de instâncias que podem ser iniciadas em paralelo, conforme documentado no artigo Definir um número máximo de instâncias do contentor.

Exceder o número máximo de instâncias

Em circunstâncias normais, a sua revisão é dimensionada horizontalmente através da criação de novas instâncias para processar a carga de tráfego recebido. No entanto, quando define um limite máximo de instâncias, em alguns cenários, existem instâncias insuficientes para satisfazer essa carga de tráfego. Nesse caso, os pedidos recebidos ficam em fila durante um máximo de 60 segundos. Durante este período de 60 segundos, se uma instância terminar de processar pedidos, fica disponível para processar pedidos em fila. Se não ficarem disponíveis instâncias durante o período de 60 segundos, o pedido falha com um código de erro 429 no Cloud Run.

Garantias de escalabilidade

O limite máximo de instâncias é um limite superior. A definição de um limite elevado não significa que a sua revisão vai ser expandida até ao número especificado de instâncias do contentor. Significa apenas que o número de instâncias de contentores em qualquer momento não deve exceder o limite.

Picos de tráfego

Em alguns casos, como picos de tráfego rápidos, o Knative Serving pode, durante um curto período, criar ligeiramente mais instâncias de contentores do que o valor máximo de instâncias especificado. Se o seu serviço não tolerar este comportamento temporário, é aconselhável ter em conta uma margem de segurança e definir um valor de instâncias máximo inferior.

Implementações

Quando implementa uma nova revisão, o Knative Serving 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, pode exceder temporariamente o limite especificado durante o período após a implementação.

Instâncias inativas e minimização dos inícios a frio

Os recursos do Kubernetes só são consumidos quando uma instância está a processar um pedido, mas isto não significa que o Knative Serving encerre imediatamente as instâncias assim que processarem todos os pedidos. Para minimizar o impacto dos inícios a frio, o Knative Serving pode manter algumas instâncias inativas. Estas instâncias estão prontas para processar pedidos em caso de um pico de tráfego repentino.

Por exemplo, quando uma instância de contentor termina de processar pedidos, pode permanecer inativa durante algum tempo caso seja necessário processar outro pedido. Uma instância de contentor inativa pode manter recursos, como ligações de base de dados abertas. No entanto, para o Cloud Run, a CPU não está disponível

Para manter as instâncias inativas permanentemente disponíveis, use a definição min-instance.

O que se segue?