Avançar para o conteúdo principal
BlogContentores (Kubernetes, Docker)Gerir Aplicações Kubernetes sem Servidor com Knative

Gerir Aplicações Kubernetes sem Servidor com Knative

Gerir Aplicações Kubernetes sem Servidor com imagem de blog Knative

A arquitectura sem servidores, em poucas palavras, elimina a necessidade de os programadores gerirem os servidores. Os servidores continuam a funcionar em segundo plano, mas o fardo de manter e dimensionar a sua infra-estrutura é transferido para o fornecedor da nuvem. Os programadores são capazes de racionalizar significativamente o seu código até funções específicas e normalmente tiram partido de um modelo de custos "on-demand" onde só pagam pelos recursos quando uma função é executada.

Uma função funciona quando API endpoints disparam eventos, o que permite que aplicações com estados imprevisíveis ou em rápida mudança escalem horizontalmente com funções abstraídas da aplicação primária. Na prática, uma função pode ser activada quando um comprador selecciona um produto num site de comércio electrónico, concebido para verificar uma base de dados para ver se esse produto está em stock e obter as informações mais actualizadas sobre preços.

Knative é um poderoso conjunto de ferramentas de funções construído em cima de Kubernetes para a gestão de aplicações sem servidor. Knative permite ao seu cluster Kubernetes escalar as cápsulas a zero enquanto ainda disponibiliza recursos para que as cápsulas possam escalar quando necessário.

Knative apoia eventos e gatilhos que podem ser personalizados para controlar a forma como a sua aplicação responde. É uma ferramenta portátil, neutra do ponto de vista do fornecedor, pelo que pode utilizá-la com o seu serviço Kubernetes gerido de preferência (como o nosso próprio Motor Linode Kubernetes), ou instalar num cluster local. Juntos, Kubernetes e esta plataforma de funções instaláveis optimizam a gestão estatal e os benefícios auto-curativos de executar uma aplicação em Kubernetes.

Knative fornece:

  • Escala automática: Knative fornece escalonamento automático de cápsulas com base no tráfego e na procura, incluindo o escalonamento a zero. Isto melhora a utilização de recursos e reduz os custos.
  • Computação orientada por eventos: Knative permite que as cargas de trabalho sem servidor respondam a eventos e acionadores.
  • Portabilidade: Knative foi concebido para funcionar em diferentes fornecedores e ambientes de nuvens. Isto permite aos programadores implantar aplicações sem servidor em diferentes ambientes sem modificações de código.
  • Extensibilidade: Knative fornece um conjunto de blocos de construção que podem ser personalizados para satisfazer requisitos de aplicação específicos.
  • Escalabilidade da empresa: Knative é de confiança de empresas como Puppet e Outfit7.

Como Funciona

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

  • Acontecimento: Recolha de APIs que permitem a realização de sumidouros, ou encaminhamento de eventos de produtores para consumidores de eventos, através de pedidos HTTP POST.
  • Servir: Definir um conjunto de objectos como Kubernetes Custom Resources Definitions (CRDs), ou criar uma extensão dos Kubernetes API. Isto determina como uma carga de trabalho sem servidor interage com o seu cluster Kubernetes com os seguintes recursos.
    • Rotas: Mapeamento de pontos terminais da rede para revisões de pontos terminais e gestão de tráfego. 
    • Configurações: Mantém o seu estado desejado como uma camada separada do seu código.
    • Revisões: Um instantâneo do seu código e configuração para cada alteração e modificação feita.
    • Serviços: Gestão da carga de trabalho que controla a criação de objectos e assegura que a sua aplicação tem continuamente uma rota, configuração e revisão para a última revisão, ou para uma revisão específica. Knative utiliza o serviço de gateway Istio por defeito.
Diagrama mostrando as camadas de um aglomerado de Kubernetes. Istio é a malha de serviço que lida com o encaminhamento de consultas e o balanceamento de carga. Knative fica no meio com a sua funcionalidade Eventing and Serving, e o aglomerado Kubernetes fica na base.
Knative usa Kubernetes como orquestrador e Istio trata do encaminhamento de consultas e equilíbrio de carga.

Pode instalar Knative no seu cluster usando YAML, ou o Operador Knative para Kubernetes. Existem também tabelas Knative Helm apresentadas por membros da comunidade Kubernetes. Knative tem um ambiente de arranque rápido, mas isso só é recomendado para fins de teste.

Começando na Nuvem Akamai

Knative é um excelente complemento do autoscaler integrado do LKE, que lhe permite controlar facilmente os nós mínimos e máximos dentro do pool de nós de um cluster. A utilização do Knative e do autoscaler em conjunto proporciona uma gestão finamente sintonizada tanto ao nível da cápsula como da infra-estrutura.

E para o ajudar a começar, temos um novo curso a pedido para isso! Juntámo-nos a Justin Mitchel do Coding for Entrepreneurs no nosso novo curso Try Knative on-demand, disponível a 28 de Fevereiro de 2023. Esta série de vídeo inclui a criação de um cluster Kubernetes utilizando Terraform, a configuração de um serviço Knative, e a implementação de uma aplicação contentorizada.


Comentários (1)

  1. Author Photo

    It was helpful

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *