O que é um operador do Kubernetes?

Copiar URL
  • O operador do Kubernetes é um método de empacotar, implantar e gerenciar aplicações do Kubernetes. 
  • Esse tipo de aplicação é implantado no Kubernetes e gerenciado com a API Kubernetes (interface de programação de aplicações) e as ferramentas do kubectl.
  • Os operadores do Kubernetes gerenciam aplicações usando um loop de reconciliação contínua que automatiza tarefas operacionais.
  • O Operator Framework é um projeto open source que disponibiliza ferramentas do Kubernetes para desenvolvedores e runtime.
  • A criação do padrão de operadores do Kubernetes foi motivada pela falta de lógica interna necessária para gerenciar sistemas complexos e stateful com segurança, como bancos de dados e filas de mensagens.
  • Os operadores do Red Hat OpenShift podem automatizar um fluxo de trabalho personalizado relacionado a recursos nativos do OpenShift, definindo e implementando recursos arbitrários e a lógica personalizada em torno deles.

O que é um operador do Kubernetes?

O operador do KubernetesPágina disponível no idioma inglês (Portuguese, Brazil não disponível) é um método de empacotar, implantar e gerenciar aplicações do Kubernetes. Esse tipo de aplicação é implantado no Kubernetes e gerenciado com a API Kubernetes (interface de programação de aplicações) e as ferramentas do kubectl.

O operador do Kubernetes é um controlador específico para aplicações que amplia as funcionalidades da API Kubernetes a fim de criar, configurar e gerenciar instâncias de aplicações complexas para um usuário do Kubernetes.

O operador é baseado nos conceitos básicos de controlador e recursos do Kubernetes. No entanto, ele inclui o conhecimento específico de uma aplicação ou domínio para automatizar o ciclo de vida inteiro do software que gerencia. 

No Kubernetes, os controladores do plano de controle implementam loops de controle que comparam repetidamente o estado desejado do cluster com o estado real. Se o estado real do cluster não corresponder ao estado desejado, o controlador corrige o problema. 

Um operador é um controlador personalizado do Kubernetes que usa recursos personalizados (CR) para gerenciar aplicações e componentes. As configurações de alto nível são disponibilizadas pelo usuário em um CR. O operador do Kubernetes traduz as diretivas de alto nível em ações de baixo nível, com base nas práticas recomendadas incorporadas à lógica do operador.

Um recurso personalizado é o mecanismo de extensão da API no Kubernetes. Uma definição de recurso personalizado (CRD) define um CR e lista todas as configurações disponíveis para os usuários do operador. 

O operador do Kubernetes monitora um tipo de CR e executa ações específicas da aplicação para o estado atual corresponder ao estado desejado nesse recurso.

Os operadores do Kubernetes introduzem novos tipos de objetos por meio de definições de recursos personalizados. As definições de recursos personalizados podem ser gerenciadas pela API Kubernetes como objetos integrados, incluindo interação por kubectl e inclusão em políticas de controle de acesso baseado em função (RBAC).

Um operador do Kubernetes continua monitorando a aplicação durante a execução. Ele pode fazer o backup de dados, recuperar-se de falhas e fazer o upgrade da aplicação automaticamente ao longo do tempo. 

As ações executadas por um operador do Kubernetes são bem diversas: escala de uma aplicação complexa, upgrades de versão ou até mesmo o gerenciamento de módulos do kernel para nós em um cluster computacional com hardware especializado.

Leia o e-book sobre os operadores do KubernetesPágina disponível no idioma inglês (Portuguese, Brazil não disponível)

Os operadores do Kubernetes gerenciam aplicações usando um loop de reconciliação contínua que automatiza as tarefas operacionais que normalmente engenheiros humanos executam. Eles atuam como uma conexão específica da aplicação entre os recursos padrão do Kubernetes e os complexos requisitos operacionais internos do software.

O Kubernetes pode gerenciar e escalar aplicações stateless, como aplicações web, backends mobile e serviços de API, sem exigir mais conhecimento sobre o funcionamento dessas aplicações. As funcionalidades integradas do Kubernetes foram criadas para lidar com essas tarefas com facilidade.

No entanto, aplicações stateful, como bancos de dados e sistemas de monitoramento, exigem mais contextualização que o Kubernetes não oferece. O Kubernetes precisa desse conhecimento para escalar, fazer o upgrade e reconfigurar essas aplicações.

Os operadores do Kubernetes incorporam esse conhecimento específico em extensões do Kubernetes para ele gerenciar e automatizar o ciclo de vida de uma aplicação.

Com a remoção de tarefas manuais difíceis do gerenciamento de aplicações, os operadores do Kubernetes tornam esses processos escaláveis, reproduzíveis e padronizados.

Para desenvolvedores de aplicações, os operadores facilitam a implantação e a execução dos serviços de base dos quais as aplicações dependem. 

Para engenheiros de infraestrutura e fornecedores, os operadores oferecem uma maneira consistente de distribuir software em clusters do Kubernetes e reduzir a carga de suporte, identificando e corrigindo problemas de aplicações. 

Com os operadores, você pode escrever código para automatizar uma tarefa, além das funcionalidades básicas de automação disponibilizadas no Kubernetes. Para as equipes que seguem uma abordagem de DevOps ou engenharia de confiabilidade de sites (SRE), os operadores foram desenvolvidos para incorporar práticas de SRE ao Kubernetes. 

A função do padrão de operador é registrar as intenções de como um operador humano gerenciaria um serviço. Um operador humano precisa ter uma compreensão completa de como uma aplicação ou serviço deve funcionar, como fazer a implantação e como corrigir qualquer problema que possa ocorrer.

Normalmente, o engenheiro de confiabilidade de sites ou a equipe de operações escreve o software para gerenciar uma aplicação, mas um operador é criado para capturar o conhecimento operacional humano e codificá-lo no software para gerenciar e implantar cargas de trabalho do Kubernetes, eliminando tarefas manuais. 

Os operadores são melhor desenvolvidos por especialistas na lógica de negócios de instalação, execução e atualização de uma aplicação específica.

No geral, a criação de um operador começa com a automação da instalação e do provisionamento self-service da aplicação, seguida de recursos de automação mais complexos.

Há também um kit de desenvolvimento de software (SDK) do operador do Kubernetes que pode ajudar você a desenvolver um operador próprio. O SDK oferece as ferramentas para desenvolver, testar e empacotar operadores, além da opção de criar operadores usando gráficos Helm, Ansible Playbooks ou Golang.

O Operator Framework é um projeto open source que oferece ferramentas de desenvolvimento e runtime para Kubernetes, permitindo acelerar o desenvolvimento de um operador.

O Operator Framework inclui:

  • Operator SDK: permite aos desenvolvedores criar operadores com base na expertise, sem exigir conhecimento das complexidades da API Kubernetes.
  • Operator Lifecycle Management: supervisiona a instalação, as atualizações e o gerenciamento do ciclo de vida de todos os operadores em execução em um cluster do Kubernetes.
  • Operator Metering: permite a geração de relatórios de uso para operadores que oferecem serviços especializados.

Quais são as motivações para usar o padrão de operador?

A criação do padrão de operador do Kubernetes foi motivada por uma limitação crítica no Kubernetes padrão, que não oferece a lógica interna necessária para gerenciar sistemas complexos e stateful com segurança, como bancos de dados e filas de mensagens. Tradicionalmente, o gerenciamento desses sistemas exigia que engenheiros de confiabilidade de sites (SREs) executassem manualmente playbooks para backups, upgrades de versão e failovers de vários nós.

Os operadores resolvem esse desafio codificando o conhecimento operacional humano diretamente no software. Com a combinação de recursos personalizados e loops de reconciliação automatizados, os operadores transformam checklists operacionais e manuais em automação contínua e autorrecuperável. Isso gera enormes benefícios para as equipes de engenharia: elimina desvios de configuração manual, permite upgrades contínuos sem riscos e capacita as organizações a implantarem software complexo e altamente disponível em qualquer plataforma em nuvem usando exatamente os mesmos manifestos YAML declarativos e padronizados.

Os operadores do Red Hat® OpenShift® são um mecanismo de extensão do Red Hat OpenShift. Eles podem automatizar um fluxo de trabalho personalizado relacionado a recursos nativos do OpenShift definindo e implementando os recursos arbitrários e a lógica personalizada em torno deles. Veja a explicação da Red Hat nesta postagem

O Red Hat OpenShift® é uma plataforma de aplicações em containers Kubernetes empresarial com operações automatizadas em todo o stack para gerenciar implantações de nuvem híbrida e multicloud.

O Red Hat OpenShift usa operadores do Kubernetes para executar toda a plataforma de forma autônoma e expor a configuração nativamente usando objetos do Kubernetes. Isso permite uma instalação rápida e atualizações robustas e frequentes. 

O Red Hat OpenShift inclui o OperatorHub incorporado, um registro de operadores certificados de fornecedores de software e projetos open source. No OperatorHub, você pode consultar e instalar uma biblioteca de operadores testados para uso com o Red Hat OpenShift e empacotados para facilitar o gerenciamento do ciclo de vida.

Teste a solução Red Hat OpenShift gratuitamente

Recurso

Acelere o desenvolvimento de apps com o Red Hat OpenShift

Descubra como sua organização pode usar o Red Hat OpenShift para desenvolver, acelerar e escalar cargas de trabalho tradicionais e de IA com segurança e em conformidade.

A Red Hat é líder na gestão de containers segundo o Magic Quadrant™ do Gartner® de 2025

Veja o Magic Quadrant™ do Gartner® de 2025 sobre gestão de containers para descobrir por que o Red Hat OpenShift foi considerado líder pelo terceiro ano consecutivo.

Leia mais

O que é orquestração de containers?

A orquestração automatiza a implantação, o gerenciamento, a escala e a rede de containers.

O que é Kubernetes?

O Kubernetes é uma plataforma de orquestração de containers que elimina vários processos manuais na hora de implantar e escalar aplicações em containers.

Red Hat OpenShift para desenvolvedores

Com o Red Hat® OpenShift®, os desenvolvedores podem criar e implantar aplicações usando as ferramentas de sua preferência, sem se preocupar com a infraestrutura.

Containers: conteúdo adicional

Artigos relacionados