Kubernetes

Tutorial do operador do Kubernetes

Tutorial do operador do Kubernetes
Operadores do Kubernetes são um conceito introduzido pelo projeto CoreOS para estender os recursos do Kubernetes, especialmente o gerenciamento de aplicativos com estado. Ele deve simplificar todo o ciclo de vida dos recursos com estado, desde empacotar o aplicativo e implantá-lo em um cluster Kubernetes até o gerenciamento e escalonamento do aplicativo.

Por exemplo, alguns dos principais componentes do Kubernetes, como etcd, têm seus operadores correspondentes disponibilizados pelo projeto CoreOs. Etcd é um armazenamento de chave-valor distribuído que reflete o estado de execução de todo o cluster Kubernetes em qualquer momento. Naturalmente, é um aplicativo com estado e vários controladores do Kubernetes se referem ao etcd para descobrir qual será a próxima etapa. Por exemplo, o controlador ReplicaSet examinará o número de pods em execução em um determinado seletor e tentará trazer o número de instâncias em execução igual ao número especificado por seu ReplicaSet ou Deployment YAML. O ReplicaSet se refere ao etcd, que mantém o controle do número de pods em execução e, uma vez que o número de pods seja alterado para um valor desejado, o etcd também atualizaria seu registro.

Mas quando se trata de aplicativos com estado, como o próprio etcd, não podemos ativar mais pods em nós diferentes sem alguma intervenção séria. Porque todas as instâncias em execução devem ter dados consistentes entre si o tempo todo. É aqui que os operadores são úteis.

Pré-requisitos

Se você deseja acompanhar este tutorial, pode começar com algo pequeno como um Minikube instalado em seu laptop ou a distribuição do Kubernetes que vem com o Docker para desktop.

O importante é ter uma compreensão das ideias básicas do Kubernetes para começar.

Etcd

Vamos criar um operador que gerencie o etcd em nosso cluster Kubernetes. Não instalaremos o etcd como um componente do Kubernetes (ou seja, no namespace do sistema kube), mas como um aplicativo normal. Porque fazer isso colocaria todo o cluster em risco. No entanto, quando estiver familiarizado com os Operadores, você pode usá-los para implantar o etcd no sistema kube enquanto inicializa um novo cluster.

Usarei o Katacoda Playground aqui, e uma inspeção mais detalhada do namespace do sistema kube mostraria que temos um pod rodando etcd para nós. Mas isso não é algo que vamos mexer. Vamos instalar o etcd no namespace padrão gerenciado pelo etcd-operator

Começando com o namespace padrão, não há pods em execução, temos uma lousa limpa.

$ kubectl get pods

Nenhum recurso encontrado.

Agora vamos instalar uma nova instância do etcd neste namespace. Começamos clonando o repositório seguido por um comando kubectl simples.

$ git clone https: // github.com / coreos / etcd-operator.idiota
$ cd etd-operator

Criando Operador Etcd

No repo, há vários exemplos para operar, o primeiro criaria um operador etcd simples usando desdobramento, desenvolvimento.yaml Arquivo. Antes de usarmos isso, primeiro precisamos criar um papel para o operador por meio do qual ele pode gerenciar e escalar o cluster etcd. Você pode criar essa função usando um script de shell.

$ / example / rbac / create_role.sh
$ kubectl create -f ./ example / deployment.yaml

O objeto operador será criado pelo último comando, embora não haja nada para operar. Ainda não temos um cluster etcd. Então vamos criar um.

$ kubectl create -f ./ example / example-etcd-cluster.yaml

Isso cria um cluster de pods etcd. Você pode vê-los usando:

$ kubectl get pods
 
NOME PRONTO STATUS REINICIA IDADE
etcd-operator-69b559656f-495vg 1/1 Running 0 9m
example-etcd-cluster-9bxfh657qq 1/1 Executando 0 23s
example-etcd-cluster-ntzp4hrw79 1/1 Executando 0 8m
example-etcd-cluster-xwlpqrzj2q 1/1 Executando 0 9m

O primeiro nesta lista é o pod de operador que garantiria que o cluster etcd mantenha um determinado estado, conforme declarado nos arquivos yaml que usamos anteriormente. Se você tentar excluir um dos pods example-etcd-cluster, outro será criado para substituí-lo. Isso é muito semelhante ao que ReplicaSet faz, mas aqui os pods têm estado!

Operadores em geral

Como mencionado anteriormente, os operadores são uma estrutura geral dentro da qual se pode implantar e gerenciar aplicativos complexos. A estrutura em si é o que os torna úteis e os exemplos específicos como operador etcd ou operador Prometheus que o CoreOS fornece têm o objetivo de agir como um guia para você desenvolver seu próprio aplicativo de maneira semelhante.

Alguns aspectos importantes dos operadores do Kubernetes são o SDK usado para escrever, construir e testar seu próprio operador personalizado, o segundo é a ideia de Gerente de Ciclo de Vida do Operador em que você pode pensar sobre todos os vários estágios pelos quais sua operadora, bem como o serviço que ela oferece, podem passar.

Os estágios do ciclo de vida podem incluir várias atualizações, descobrir qual operador está executando em quais namespaces e também atualizar os operadores quando uma nova versão chega.

Referências

Você pode ler muito mais sobre essa tecnologia em:

  1. Postagem original do CoreOS, e
  2. O operador etcd pode ser explorado aqui
Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...