Usar instâncias mínimas

Saiba como ativar instâncias inativas para os seus serviços configurando a definição de instâncias mínimas.

Por predefinição, o Knative Serving dimensiona até ao número de instâncias com base no número de pedidos recebidos. No entanto, se o seu serviço exigir uma latência reduzida e quiser limitar o número de inícios a frio, pode alterar este comportamento predefinido especificando um número mínimo de instâncias de contentores a manter em execução e prontas para processar pedidos.

As instâncias que continuam a ser executadas desta forma incorrem em custos de faturação.

Revisões e instâncias mínimas

As instâncias mínimas só são iniciadas se a revisão for endereçável. Uma revisão é endereçável se alguma das seguintes afirmações for verdadeira:

  • Recebe uma percentagem do tráfego.
  • Foi-lhe atribuída uma etiqueta de revisão.

Definir e atualizar instâncias mínimas

Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.

Por predefinição, as instâncias de contentores têm a opção min-instances desativada, com uma definição de 0. Pode alterar esta predefinição através da Google Cloud consola ou da CLI Google Cloud quando implementa um novo serviço ou atualiza um serviço existente e implementa uma revisão:

Consola

  1. Aceda ao Knative serving na Google Cloud consola:

    Aceda ao Knative serving

  2. Clique em Criar serviço se estiver a configurar um novo serviço para o qual está a implementar. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.

  3. Em Definições avançadas, clique em Contentor.

  4. No campo com a etiqueta Número mínimo de instâncias, especifique o número desejado de instâncias de contentores a manter ativas, prontas para receber pedidos.

  5. Clique em Seguinte para continuar para a secção seguinte.

  6. Na secção Configure como este serviço é acionado, selecione a conetividade que quer usar para invocar o serviço.

  7. Clique em Criar para implementar a imagem no Knative Serving e aguarde que a implementação termine.

Linha de comandos

  • Para serviços existentes, defina o número mínimo de instâncias de contentores executando o comando gcloud run services update com o parâmetro --min-instances:

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

    Substituição:

    • SERVICE com o nome do seu serviço.
    • MIN-VALUE com o número desejado de instâncias do contentor a manter ativas, prontas para receber pedidos. Especifique default para limpar qualquer definição de instância mínima.
  • Para novos serviços, defina o número mínimo de instâncias do contentor executando o comando gcloud run deploy com o parâmetro --min-instances:

    gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE

    Substituição:

    • SERVICE com o nome do seu serviço.
    • IMAGE_URL com uma referência à imagem do contentor, por exemplo, gcr.io/cloudrun/hello.
    • MIN-VALUE com o número desejado de instâncias de contentores a manter ativas, prontas para receber pedidos. Especifique default para limpar qualquer definição de instância mínima.

YAML

Pode transferir a configuração de um serviço existente para um ficheiro YAML com o comando gcloud run services describe usando a flag --format=export. Em seguida, pode modificar esse ficheiro YAML e implementar essas alterações com o comando gcloud run services replace. Tem de garantir que modifica apenas os atributos especificados.

  1. Transfira a configuração do seu serviço para um ficheiro denominado service.yaml no espaço de trabalho local:

    gcloud run services describe SERVICE --format export > service.yaml

    Substitua SERVICE pelo nome do seu serviço de fornecimento do Knative.

  2. No ficheiro local, atualize o atributo autoscaling.knative.dev/minScale::

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

    Substituição:

    • MIN-VALUEcode> com o número desejado de instâncias de contentores a manter ativas, prontas para receber pedidos. Especifique default para limpar qualquer definição de instância mínima.
  3. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml