Pular para o conteúdo principal
BlogRecipientes (Kubernetes, Docker)Gerenciar aplicações sem servidor Kubernetes com Knative

Gerenciar aplicações sem servidor Kubernetes com Knative

Gerenciar aplicações sem servidor Kubernetes com imagem de blog Knative

A arquitetura sem servidores, em poucas palavras, elimina a necessidade de os desenvolvedores gerenciarem os servidores. Os servidores ainda estão funcionando em segundo plano, mas o fardo de manter e dimensionar sua infra-estrutura é transferido para o fornecedor da nuvem. Os desenvolvedores são capazes de racionalizar significativamente seu código até funções específicas e normalmente se beneficiam de um modelo de custo "sob demanda" onde eles só pagam pelos recursos quando uma função é executada.

Uma função é executada quando API Os pontos de extremidade acionam eventos, o que permite que aplicativos com estados imprevisíveis ou que mudam rapidamente sejam dimensionados horizontalmente com funções abstraídas do aplicativo principal. Na prática, uma função pode ser acionada quando um comprador seleciona um produto em um site de comércio eletrônico, projetado para verificar um banco de dados para ver se esse produto está em estoque e obter as informações de preço mais atualizadas.

Knative é um poderoso conjunto de ferramentas de funções construído em cima da Kubernetes para gerenciar aplicações sem servidor. Knative permite que seu cluster Kubernetes escale os pods a zero enquanto ainda disponibiliza recursos para que os pods possam escalar quando necessário.

Knative suporta eventos e gatilhos que podem ser personalizados para controlar como sua aplicação responde. É uma ferramenta portátil, independente do fornecedor, de modo que você pode usá-la com seu serviço Kubernetes gerenciado preferido (como nosso próprio Motor Linode Kubernetes), ou instalar em um cluster local. Juntos, Kubernetes e esta plataforma de funções instaláveis otimizam o gerenciamento estatal e os benefícios de auto-cura da execução de uma aplicação em Kubernetes.

A Knative fornece:

  • Escala automática: Knative fornece escalonamento automático de pods com base no tráfego e na demanda, incluindo escalonamento a zero. Isto melhora a utilização dos recursos e reduz os custos.
  • Computação orientada por eventos: Knative permite que as cargas de trabalho sem servidor respondam aos eventos e acionadores.
  • Portabilidade: Knative é projetado para trabalhar em diferentes fornecedores e ambientes de nuvens. Isto permite aos desenvolvedores implantar aplicações sem servidor em diferentes ambientes sem modificações de código.
  • Extensibilidade: A Knative fornece um conjunto de blocos de construção que podem ser personalizados para atender às exigências específicas da aplicação.
  • Escalabilidade da empresa: Knative é confiável por empresas como Puppet e Outfit7.

Como Funciona

A funcionalidade do Knative está dividida em Knative Eventing e Knative Serving.

  • Eventos: Coleção de APIs que permitem a realização de pias, ou encaminhamento de eventos de produtores de eventos para consumidores de eventos, via solicitações HTTP POST.
  • Servindo: A definição de um conjunto de objetos como CRDs (Custom Resources Definitions, Definições de Recursos Personalizados) do Kubernetes ou a criação de uma extensão do Kubernetes API. Isso determina como uma carga de trabalho sem servidor interage com seu cluster do Kubernetes com os seguintes recursos.
    • Rotas: Mapeamento de pontos finais de rede para revisões de pontos finais e gerenciamento de tráfego. 
    • Configurações: Mantém seu estado desejado como uma camada separada de seu código.
    • Revisões: Um instantâneo de seu código e configuração para cada mudança e modificação feita.
    • Serviços: Gerenciamento de carga de trabalho que controla a criação de objetos e assegura que seu aplicativo tenha continuamente uma rota, configuração e revisão para a última revisão, ou para uma revisão específica. Knative usa o serviço de gateway Istio por padrão.
Diagrama mostrando as camadas de um aglomerado Kubernetes. Istio é a malha de serviço que lida com o roteamento de consultas e o balanceamento de carga. Knative fica no meio com sua funcionalidade Eventing and Serving, e o aglomerado Kubernetes fica na base.
Knative usa Kubernetes como o orquestrador e Istio trata do roteamento de consultas e do balanceamento de carga.

Você pode instalar Knative em seu cluster usando YAML, ou o Operador Knative para Kubernetes. Há também tabelas Knative Helm apresentadas por membros da comunidade Kubernetes. Knative tem um ambiente de início rápido, mas isso só é recomendado para fins de teste.

Começando na Nuvem Akamai

Knative é um excelente complemento ao autoscaler embutido da LKE, que permite controlar facilmente os nós mínimo e máximo dentro do pool de nós de um cluster. O uso do Knative e do autoscaler juntos proporciona uma gestão bem sintonizada, tanto no nível da cápsula quanto da infra-estrutura.

E para ajudar você a começar, temos um novo curso sob demanda para isso! Nos associamos a Justin Mitchel de Codificação para Empresários em nosso novo curso Try Knative on-demand, disponível em 28 de fevereiro de 2023. Esta série de vídeos inclui a criação de um cluster Kubernetes usando Terraform, a configuração de um serviço Knative e a implantação de uma aplicação contentorizada.


Comentários (1)

  1. Author Photo

    It was helpful

Deixe uma resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *