Jump to section

O que é um operador Kubernetes?

Copiar URL

O operador do Kubernetes é um método de empacotar, implantar e gerenciar aplicações do Kubernetes. Uma aplicação Kubernetes é implantada e gerenciada no Kubernetes usando a interface de programação de aplicações (API) do Kubernetes e o conjunto de ferramentas kubectl.

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

Ele se apoia sobre os conceitos básicos de controlador e recursos do Kubernetes, mas 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 painel de controle implementam loops que repetidamente comparam o estado desejado com o estado atual do cluster. Se o estado atual não coincidir com o desejado, o controlador realiza ações para corrigir o problema. 

Um operador é um controlador Kubernetes sob medida que usa recursos personalizados (CR) para gerenciar aplicações e seus respectivos componentes. O usuário define as configurações de alto nível em um CR. O operador Kubernetes traduz as diretivas de alto nível em ações de baixo nível com base nas práticas recomendadas incorporadas na lógica do próprio operador.

Um recurso personalizado é o mecanismo de extensão da API no Kubernetes. A definição do recurso personalizado (CRD) estipula um CR e lista toda a configuração disponível para os usuários do operador. 

O operador Kubernetes inspeciona o tipo de CR e realiza ações específicas para a aplicação. Dessa forma, o estado atual pode coincidir com o estado desejado no recurso em questão.

Os operadores Kubernetes introduzem novos tipos de objetos por meio de definições de recurso personalizado. As definições de recurso personalizado podem ser processadas pela API do Kubernetes da mesma forma que os objetos incorporados, incluindo interação via kubectl e inclusão em políticas de controle de acesso baseado em função (RBAC).

Um operador Kubernetes continua a monitorar a aplicação enquanto ela é executada, podendo automaticamente fazer o backup de dados, recuperar a aplicação após falhas e fazer o upgrade dela com o passar do tempo. 

As ações realizadas por um operador Kubernetes podem incluir praticamente qualquer coisa: escalonamento 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.

Saiba mais como os operadores Kubernetes funcionam, inclusive com exemplos reais, e aprenda a criá-los com o Operator Framework e o kit de desenvolvimento de software.

O Kubernetes pode gerenciar e escalar aplicações stateless, como aplicações web, back-ends mobile e serviços de API, sem a necessidade de nenhum conhecimento adicional sobre como essas aplicações operam. As funcionalidades incorporadas do Kubernetes foram projetadas para lidar facilmente com essas tarefas.

No entanto, no caso das aplicações stateful, como sistemas de monitoramento e bancos de dados, é necessário um conhecimento específico do domínio que o Kubernetes não tem. O Kubernetes precisa desse conhecimento para escalar, fazer upgrade e reconfigurar aplicações desse tipo.

Os operadores Kubernetes incluem esse conhecimento específico do domínio no código das extensões Kubernetes para que seja possível gerenciar e automatizar o ciclo de vida da aplicação. 

Ao eliminar as tarefas manuais de gerenciamento de aplicações mais difíceis, os operadores Kubernetes transformam tais processos em escaláveis, reproduzíveis e padronizados.

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

Para os engenheiros de infraestrutura e fornecedores, os operadores oferecem uma maneira consistente de distribuir software em clusters do Kubernetes, além de reduzir o trabalho de suporte ao identificar e corrigir problemas nas aplicações. 

Com os operadores, você pode escrever códigos para automatizar tarefas não inclusas nas funcionalidades de automação básicas do Kubernetes. Para as equipes que seguem abordagens de DevOps ou de Site Reliability Engineering (SRE), os operadores foram desenvolvidos para a incorporação de práticas de SRE ao Kubernetes. 

A função do padrão do operador é capturar as intenções de como um operador humano gerenciaria um serviço. Um operador humano precisa ter compreensão total de como uma aplicação ou um serviço deve funcionar, como implantá-lo e como corrigir possíveis problemas.

Normalmente, o site reliability engineer ou a equipe de operações escreve o código do software para gerenciar a aplicação. No entanto, o operador é projetado para codificar o conhecimento operacional humano em um software que gerencia e implanta cargas de trabalho do Kubernetes, ao mesmo tempo em que elimina tarefas manuais. 

O ideal é que tais operadores sejam criados por profissionais especializados na lógica de negócios para a instalação, a execução e o upgrade de uma determinada aplicação.

Geralmente, a criação de um operador começa pela automação da instalação da aplicação e pelo provisionamento por autosserviço. Em seguida, são inclusos recursos de automação mais complexos.

Também há um kit de desenvolvimento de software (SDK) que ajudará você a desenvolver seu próprio operador Kubernetes. Esse SDK oferece as ferramentas para criar, testar e empacotar operadores, com a opção de usar gráficos Helm, playbooks do Ansible ou Golang.

O Operator Framework é um projeto open source que fornece ferramentas de desenvolvedor e de ambiente de execução do Kubernetes, a fim de acelerar o desenvolvimento de um operador.

O Operator Framework inclui:

  • Operator SDK: permite que desenvolvedores criem operadores com base em seu próprio conhecimento especializado, sem a necessidade de entender as complexidades da API do 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 para operadores que fornecem serviços especializados.

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

O Red Hat OpenShift usa operadores Kubernetes para executar a plataforma inteira de maneira autônoma e expor a configuração de modo nativo por meio de objetos Kubernetes, o que permite acelerar a instalação e realizar atualizações robustas e frequentes. 

O OperatorHub, um registro de operadores certificados de fornecedores de software e projetos open source, já está incorporado ao Red Hat OpenShift. No OperatorHub, é possível procurar e instalar bibliotecas de operadores verificados para funcionar com o Red Hat OpenShift e que foram empacotados para facilitar o gerenciamento do ciclo de vida.

Leitura recomendada

ARTIGO

Containers x máquinas virtuais

Os containers Linux e as máquinas virtuais são ambientes de computação empacotados que combinam vários componentes de TI e os isolam do restante do sistema.

ARTIGO

O que é orquestração de containers?

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

ARTIGO

O que é um container Linux?

Um container Linux é um conjunto de processos isolados do sistema. Esses processos são executados a partir de uma imagem distinta que oferece todos os arquivos necessários a eles.

Leia mais sobre containers

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

Conteúdo adicional

Datasheet

Red Hat OpenShift: tecnologia de container para nuvem híbrida

O Red Hat® OpenShift® é uma plataforma empresarial de containers Kubernetes que ajuda organizações em todo o mundo a criar, implantar, executar, gerenciar e proteger aplicações inovadoras em nuvens híbridas.

Datasheet

Red Hat OpenShift Kubernetes Engine

O Red Hat OpenShift Kubernetes Engine consiste em vários componentes essenciais e totalmente integrados para criação, implantação e gerenciamento de aplicações em containers.

Ebook

Transforme suas aplicações

Conheça as tendências atuais para a transformação de aplicações e como modernizar sua TI usando serviços em nuvem e plataformas de aplicações em nuvem híbrida.

Treinamentos Red Hat

Treinamento gratuito

Running Containers with Red Hat Technical Overview

Treinamento gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures