Como usar instâncias mínimas

Por padrão, o Cloud Run é escalonado verticalmente ao número de instâncias com base no número de solicitações recebidas. No entanto, se o serviço exigir latência reduzida, e você quiser limitar o número de inicializações a frio, altere esse comportamento padrão especificando um número mínimo de instâncias de contêiner a serem mantidas quentes e prontas para exibir solicitações.

As instâncias que estão em execução dessa forma geram custos de faturamento em taxas de inatividade. As instâncias mínimas manterão a execução em inatividade, prontas para atender às solicitações. No entanto, a CPU será limitada quando nenhuma solicitação estiver sendo processada.

Nesta página, você verá como ativar instâncias ociosas para o serviço usando a configuração mínima de instâncias.

Revisões e instâncias mínimas

As instâncias mínimas serão iniciadas apenas se a revisão for endereçável. Uma revisão será endereçável se uma das seguintes condições for verdadeira:

  • Ela recebe uma porcentagem do tráfego.
  • Uma tag de revisão foi atribuída a ela.

Como configurar e atualizar instâncias mínimas

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também receberão automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

Por padrão, as instâncias de contêiner têm min-instances desativado, com uma configuração de 0. É possível alterar esse padrão usando o Console do Cloud, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço existente, clique nele e depois selecione Editar e implantar nova revisão.

  3. Em Configurações avançadas, clique em Contêiner.

    imagem

  4. No campo Número mínimo de instâncias, especifique o valor desejado de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações.

  5. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar o valor de min-instance de um determinado serviço usando o seguinte comando:

gcloud beta run services update SERVICE --min-instances MIN-VALUE

Substitua:

  • SERVICE pelo nome do serviço;
  • MIN-VALUE pelo número pretendido de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações. Especifique default para limpar qualquer configuração mínima de instância.

Também é possível definir min-instance durante a implantação usando este comando:

gcloud beta run deploy --image IMAGE_URL --min-instances MIN-VALUE

Substitua:

  • IMAGE_URL por uma referência à imagem de contêiner, por exemplo, gcr.io/myproject/my-image:latest;
  • MIN-VALUE pelo número pretendido de instâncias de contêiner a serem mantidas quentes e prontas para receber solicitações. Especifique default para limpar qualquer configuração mínima de instância.

YAML

É possível fazer o download e ver a configuração do serviço atual usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud beta run services replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize o atributo autoscaling.knative.dev/minScale::

    spec:
     template:
       metadata:
         annotations:
           autoscaling.knative.dev/minScale: 'MIN-INSTANCE' 

    Substitua:

    • MIN-INSTANCE pelo número pretendido de instâncias a serem mantidas quentes e prontas para receber solicitações.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud beta run services replace service.yaml