BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias RedHat lança OperatorHub.io, um repositório para Kubernetes Operators

RedHat lança OperatorHub.io, um repositório para Kubernetes Operators

Favoritos

A Red Hat, junto com a Microsoft, Google Cloud e Amazon Web Services, lançou recentemente o OperatorHub.io. O OperatorHub.io é projetado para ser um repositório público para encontrar serviços suportados por Kubernetes Operators.

Os Operators foram introduzidos inicialmente pelo CoreOS em 2016, projetados para serem controladores específicos de aplicações que estendem as APIs do Kubernetes para criar, configurar e gerenciar instâncias de aplicações em nome dos usuários do Kubernetes. Além disso, os usuários do Kubernetes podem tirar vantagem dos operators para automatizar rotinas, tarefas complexas, atualizações, backups, escalar aplicações, e mais.

Os operators são um método de empacotar, implantar e gerenciar aplicações que são tanto publicadas no Kubernetes como gerenciadas com as APIs do Kubernetes e o kubectl; essas aplicações são conhecidas como Kubernetes applications.

Para facilitar a criação das Kubernetes applications, a Red Hat e Kubernetes abriram o código do Operator Framework. O Operator Framework é um conjunto de ferramentas que contém:

  • Operator SDK - permite que os desenvolvedores construam operators com base na experiência do desenvolvedor, sem a necessidade de conhecimento das complexidades da API do Kubernetes;
  • Operator Lifecycle Manager - supervisiona a instalação, atualizações e gerenciamento do ciclo de vida de todos os operators em execução em um cluster do Kubernetes;
  • Operator Metering - permite relatórios de uso para operators que fornecem serviços especializados.

O Operator SDK suporta o desenvolvimento de operators usando uma série de linguagens tais como Go, Ansible ou Helm. Um workflow básico para a construção de um operator em Go seria:

  • Criar um novo projeto operator usando a linha de comando (CLI) do SDK;
  • Definir novas APIs de recursos adicionando Custom Resource Definitions(CRD);
  • Definir controladores para observar e reconciliar recursos;
  • Escrever a lógica de reconciliação dos controladores usando o SDK e controller-runtime APIs;
  • Construir e gerar os arquivos de publicação usando o SDL CLI.

Para aprender mais sobre como escrever um operador, os desenvolvedores podem explorar os guias disponíveis para Go, Ansible e Helm. Além disso, é possível explorar uma série de operadores construídos usando o repositório operator-sdk-samples.

De acordo com Aparna Sinha, gerente de produtos no Google Cloud, no Google Cloud eles investiram na criação e qualificação de operators desenvolvidos na comunidade e estão animados em ver que mais de 40% dos clusters do Google Kubernetes Engine (GKE) estão executando aplicações stateful hoje.

De acordo com Diane Mueller, diretora de desenvolvimento da comunidade da Red Hat, para um operator ser considerado para a inclusão no OperatorHub.io, o operator deve demonstrar funcionalidades do ciclo de vida de um cluster, empacotar de maneira que possa ser mantido pelo Operator Framework's Operator Lifecycle Management, e ter uma documentação aceitável para os usuários.

Alguns exemplos de operators que estão sendo listados atualmente no OperatorHub.io incluem: Amazon Web Services Operator, Couchbase Autonomous Operator, CrunchyData's PostgreSQL, etcd Operator, Jaeger Operator for Kubernetes, Kubernetes Federation Operator, MongoDB Enterprise Operator, Percona MySQL Operator, PlanetScale's Vitess Operator, Prometheus Operator, e Redis Operator.

Para submeter um operator, é necessário enviar um PR para o OperatorHub.io community operators repo em um novo diretório com o nome do operator que está sendo submetido, dentro do diretório community-operators/:

$ ls community-operators/my-operator/
my-operator.v1.0.0.clusterserviceversion.yaml
my-operator-crd1.crd.yaml
my-operator-crd2.crd.yaml
my-operator.package.yaml

É importante observar que o nome do diretório deve ser o mesmo nome do novo operator no arquivo package.yaml.

Cada entrada no OperatoHub contém todos as customizações das definições de recursos (CRDs), regras de acesso de controle, referências para a imagem de container necessária para instalar e executar seguramente o operator, descrição das funcionalidades e versões suportadas do Kubernetes.

Maiores informações sobre a submissão ou atualização de um operator podem ser encontrada no guia de contribuição.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT