O ACK Serverless oferece Knative integrado com gateways ALB e instâncias reservadas sem custo adicional.
O Knative é uma plataforma open source baseada em Kubernetes para criar, implantar e gerenciar workloads serverless.
O ACK Serverless integra o Knative nativamente. Crie um cluster ACK Serverless e ative o Knative para utilizar recursos da cloud por meio da API do Knative. A execução do controller não gera custos adicionais.
Componentes
O Knative possui dois componentes principais:
Knative Serving: Integrado ao ACK Serverless, o controller do Knative Serving solicita automaticamente recursos de pod ao cluster.
Knative Gateway: Gerencia o tráfego de entrada dos services do cluster. O ACK Serverless utiliza instâncias do Application Load Balancer (ALB) como gateways de entrada do Knative e elimina a necessidade de infraestrutura de gateway residente.
ACK Serverless Knative vs. Knative open source
|
Knative open source |
ACK Serverless Knative |
|
|
Infraestrutura de gateway |
Exige instâncias de gateway residentes (por exemplo, Istio); há custos de infraestrutura e operação e manutenção |
Utiliza o ALB como gateway de entrada; não requer instâncias de gateway residentes |
|
Custo do controller Knative |
Há custos com a infraestrutura que executa o controller do Knative |
Sem cobrança pelo controller do Knative |
|
Comportamento de dimensionamento |
Dimensiona para zero fora do horário de pico; cold starts podem causar timeouts de sessão sob picos de tráfego |
Mantém uma instância reservada; usa instâncias com capacidade de burst fora do pico para controlar custos |
Knative Gateway
O Knative open source suporta diversos gateways de entrada: Istio, Gloo, Contour, Kourier e Ambassador. O Istio é o mais comum porque também funciona como service mesh, mas exige pelo menos duas instâncias de gateway residentes por cluster para garantir alta disponibilidade, além de gerar custos contínuos de infraestrutura e operação e manutenção.
O ACK Serverless utiliza instâncias do ALB como gateways de entrada do Knative. Essa abordagem elimina a necessidade de instâncias de gateway residentes e reduz os custos de infraestrutura e operação e manutenção.
Instâncias reservadas
Para minimizar custos, o Knative open source dimensiona para zero fora do horário de pico. A contrapartida é a latência de cold start: quando o tráfego retorna, o cluster precisa alocar recursos, agendar pods, baixar imagens e inicializar a aplicação. Esse processo pode provocar timeouts de sessão durante picos de tráfego.
O ACK Serverless Knative mantém sempre uma instância reservada em execução. Fora do horário de pico, ele substitui instâncias otimizadas para computação por instâncias com capacidade de burst para reduzir despesas. Quando o tráfego aumenta, a troca é revertida. Os créditos de CPU acumulados nos períodos de baixa demanda podem compensar os custos de computação nos horários de pico.
Pré-requisitos
É necessário ter um cluster ACK Serverless executando o Kubernetes 1.16 ou posterior. Caso seu cluster esteja em uma versão anterior à 1.16, atualize-o antes de implantar o Knative.
Implantar o Knative
Deploy Knative no console do ACK.
Faturamento
O ACK Serverless Knative cobra apenas pelos recursos da cloud utilizados pelo seu cluster: instâncias de elastic container, instâncias do Server Load Balancer (SLB) e gateways NAT. Cada recurso é faturado conforme suas billing rules.
Próximas etapas
Deploy Knative: Ative o Knative em um cluster ACK Serverless.
Reserved instances: Configure instâncias reservadas para equilibrar custo e disponibilidade.