Glossário

Kubernetes

Descubra como o Kubernetes simplifica as cargas de trabalho de IA/ML com implantação de modelo escalonável, treinamento distribuído e gerenciamento eficiente de recursos.

O Kubernetes, frequentemente abreviado como K8s, é uma plataforma de orquestração de contentores de código aberto que automatiza a implementação, o dimensionamento e a gestão de aplicações em contentores. Originalmente desenvolvido pelo Google e agora mantido pela Cloud Native Computing Foundation (CNCF), o Kubernetes fornece uma estrutura robusta para executar sistemas distribuídos e resilientes. No contexto da Inteligência Artificial (IA) e da Aprendizagem Automática (AM), tornou-se uma ferramenta essencial para gerir todo o ciclo de vida dos modelos de AM, desde a formação até à implementação em ambientes de produção.

Como funciona o Kubernetes

O Kubernetes funciona num cluster de máquinas, que podem ser servidores físicos ou máquinas virtuais, no local ou na nuvem. Os principais componentes incluem:

  • Cluster: Um conjunto de nós (máquinas de trabalho) que executam aplicativos em contêineres.
  • Nó: Uma máquina de trabalho num cluster Kubernetes. Cada nó executa um Kubelet, que é um agente para gerir o nó e comunicar com o plano de controlo.
  • Pod: A unidade mais pequena e mais simples no modelo de objeto Kubernetes. Um Pod representa uma única instância de um processo em execução num cluster e pode conter um ou mais contentores, como os contentores Docker.
  • Implantação: Gerencia um conjunto de réplicas de Pods, garantindo que um número especificado deles esteja em execução o tempo todo. Ele lida com atualizações e reversões automaticamente.

Ao abstrair o hardware subjacente, o Kubernetes permite que os programadores e os engenheiros de MLOps definam o estado desejado da sua aplicação e trabalha para manter esse estado, tratando automaticamente as falhas e as necessidades de dimensionamento. Para saber mais, consulte a documentação oficial do Kubernetes.

Kubernetes em IA e aprendizagem automática

O Kubernetes é particularmente poderoso para Operações de Aprendizado de Máquina (MLOps) porque aborda muitos desafios associados à criação e implantação de sistemas de IA em escala. A sua capacidade de gerir recursos de forma eficiente torna-o ideal para tarefas que consomem muitos recursos, como a formação de modelos. O Kubernetes pode dimensionar trabalhos de treinamento em várias GPUs e nós, reduzindo significativamente o tempo de treinamento.

Por inferência, Kubernetes garante alta disponibilidade e escalabilidade. Aqui estão alguns exemplos do mundo real:

  1. Serviço de deteção de objectos escalável: Uma empresa implementa um modelo Ultralytics YOLO11 para deteção de objectos em tempo real como um serviço Web. O modelo é empacotado em um contêiner. Usando o Kubernetes, eles podem escalar automaticamente o número de pods de inferência para cima ou para baixo com base no tráfego de entrada. Se um nó falhar, o Kubernetes reprograma automaticamente os pods em nós saudáveis, garantindo que o serviço permaneça disponível sem intervenção manual. Este é um padrão comum para a implantação de modelos em sistemas de vigilância inteligentes.
  2. Pipeline complexo de PNL como microsserviços: Uma equipa cria uma aplicação de Processamento de Linguagem Natural (PLN) que envolve várias etapas: pré-processamento de texto, análise de sentimentos e reconhecimento de entidades nomeadas. Cada componente é um microsserviço separado, contentorizado de forma independente. O Kubernetes orquestra esses serviços, gerenciando sua rede e permitindo que cada parte seja atualizada e dimensionada de forma independente. Esta arquitetura fornece flexibilidade e resiliência para aplicações complexas orientadas para a IA.

Kubernetes vs. tecnologias relacionadas

  • Kubernetes vs. Docker: O Docker é uma ferramenta para criar e executar contentores individuais. O Kubernetes é um orquestrador para contentores, gerindo milhares deles em várias máquinas. Não são concorrentes, mas sim colaboradores; constrói imagens de contentores com o Docker e depois gere-as com o Kubernetes. Pode começar com as noções básicas seguindo o guia Docker Quickstart.
  • Kubernetes vs. computação sem servidor: Plataformas sem servidor, como o AWS Lambda, abstraem todo o gerenciamento do servidor. Em contraste, o Kubernetes oferece mais controle sobre a infraestrutura, tornando-o melhor para aplicativos de longa duração ou com estado. Embora o serverless seja mais simples para funções orientadas a eventos, as estruturas serverless podem ser executadas no Kubernetes usando ferramentas como o Knative.

Ferramentas e ecossistema

O ecossistema Kubernetes é vasto e inclui muitas ferramentas para alargar a sua funcionalidade:

  • Helm: Muitas vezes chamado de gerenciador de pacotes para Kubernetes, o Helm ajuda a gerenciar aplicativos Kubernetes.
  • Prometheus e Grafana: Uma combinação popular para monitorizar clusters e aplicações Kubernetes.
  • Integrações de provedores de nuvem: Os principais provedores de nuvem oferecem serviços gerenciados do Kubernetes, como o Google Kubernetes Engine (GKE), o Amazon Elastic Kubernetes Service (EKS) e o Azure Kubernetes Service (AKS), que simplificam a configuração e a manutenção do cluster.
  • Plataformas de ML: Ferramentas como o Kubeflow são construídas no Kubernetes para fornecer fluxos de trabalho específicos de ML para pipelines, treinamento e implantação. Plataformas como o Ultralytics HUB simplificam o pipeline de MLOps, muitas vezes abstraindo as complexidades do Kubernetes para facilitar a implantação do modelo.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência