Como criar CRD em Kubernetes

Como criar CRD em Kubernetes
Vamos aprender a criar o CRD em Kubernetes neste artigo. Neste tutorial, guiaremos você sobre como criar CRD em Kubernetes e depois criar um controlador Kubernetes que será usado para lidar com as solicitações de criação de instância do CRD. Estaríamos demonstrando cada etapa com a ajuda de exemplos para ajudá -lo a entender completamente o funcionamento da criação da CRD junto com o objeto do controlador para lidar com a CRD em Kubernetes. Então vamos começar!

O que é CRD em Kubernetes?

CRD significa definição de recursos personalizados usados ​​para novos recursos sem adicionar outro servidor de API. Para trabalhar com o CRDS, você não precisa entender a agregação da API. É um recurso muito poderoso introduzido em Kubernetes 1.7 para ser enviado com vários recursos e objetos de API embutidos. Ele permite definir recursos personalizados com um esquema e nome de sua escolha.

O CRDS estende as habilidades da API Kubernetes que excedem a instalação padrão, utilizando as definições de recursos personalizadas. Ao utilizar o CRDS, você pode orientar o Kubernetes de uma maneira que possa lidar com mais do que apenas contêineres. Você pode criar um recurso personalizado de sua própria escolha e torná -lo declarativo usando os controladores personalizados. Agora, vamos aprender a criar uma definição de recurso personalizada e depois projetar um controlador personalizado para controlar o CRD. E então como excluir o CDR para ver seu impacto no Kubernetes.

Pré -requisito

Antes de passarmos para as etapas de criação e exclusão da CRD, certifique -se de que nosso sistema atenda a todas as necessidades dos pré -requisitos.

  • Ubuntu 20.04 ou qualquer outra versão mais recente para ter um ambiente Linux/Unix para funcionar.
  • Cluster de Kubernetes.
  • Kubectl CLI para usar comandos Kubectl, comunicação de cluster e gerenciar o ambiente de desenvolvimento.
  • Minikube ou qualquer outro playground do Kubernetes para criar os aglomerados

Instale essas ferramentas, se você ainda não as instalou, antes de prosseguir para a próxima seção.

Agora, passaremos para o guia passo a passo sobre como criar CRDs em Kubernetes.

Etapa 1: Inicie Kubernetes

Para trabalhar com o CDRS, você deve ter um cluster com pelo menos dois nós Kubernetes que não estão funcionando como hosts de avião de controle. Estamos usando o minikube para criar e usar o cluster. Portanto, use o comando abaixo para iniciar o Minikube:

> Minikube Start

Quando você executa este comando, você obterá uma saída semelhante à da abaixo:

Etapa 2: abra ou crie um arquivo de configuração

Agora que nosso minikube está em funcionamento, vamos abrir o arquivo de configuração. O comando 'nano' é usado para abrir os arquivos de configuração. Tudo o que você precisa fazer é fornecer o nome do arquivo ao lado do comando nano seguido pela extensão do arquivo e pressione Enter. Aqui, temos o 'vermelho.arquivo yaml 'que contém os detalhes da configuração para criar o CRDS. Aqui está o comando Nano completo que você pode usar para abrir o arquivo desejado:

> Nano vermelho.Yaml

Quando você executa este comando, o seguinte arquivo será aberto em seu terminal:

Etapa 3: Crie um recurso de terminal

Os recursos de configuração foram salvos no vermelho.Yaml. Estaremos usando isso para criar o novo ponto de extremidade da API RESTful da API com namespaced. Kubectl fornece o comando 'Aplicar' para criar um ponto de extremidade a partir de um arquivo de configuração. Aqui está o comando completo 'Aplicar' que é usado para criar a nova API RESTful de namespaced:

> kubectl Aplicar -f vermelho.Yaml

O ponto final criado por este comando será usado para criar o objeto personalizado que controlará o CRD. A saída a seguir será gerada para o recurso de espaço para o nome:

Etapa 4: Crie um objeto personalizado para controlar o CRD

Os CRDs são controlados pelos objetos personalizados. Podemos criá -los assim que a definição de recurso personalizada for criada. Os objetos personalizados contêm os campos personalizados do JSON arbitrário. Para criar o objeto personalizado, precisamos novamente de um arquivo de configuração da YAML. Use o comando 'nano' para criar o arquivo de configuração YAML:

> Nano Ct.Yaml

Salve os campos necessários com os detalhes específicos no arquivo YAML. Os detalhes da configuração da amostra são mostrados na amostra abaixo:

Agora, use o mesmo arquivo YAML para criar o objeto personalizado. Use o comando 'Aplicar' para criar o objeto personalizado a partir do arquivo YAML especificado. Veja o comando completo dado abaixo:

> kubectl Aplicar -f ct.Yaml

Após a execução bem -sucedida deste comando, você obterá a seguinte saída:

Etapa 5: Gerencie o CRD com um objeto personalizado

Os objetos personalizados são usados ​​para gerenciar o CRDS. Então, vamos aprender como podemos utilizar o objeto personalizado criado recentemente para gerenciar o CRD já criado. Aqui, vamos verificar os detalhes que contêm o objeto personalizado usando o comando 'get'. Veja o comando fornecido no snippet de código abaixo:

> Kubectl Obtenha Crontab

Quando você executa este comando no terminal Minikube, a seguinte saída será gerada:

Se você deseja verificar os dados brutos contidos no arquivo YAML, poderá usar este comando:

> Kubectl Obtenha Ct -o Yaml

Isso mostrará os dados brutos no arquivo YAML, como a amostra dada abaixo:

É assim que podemos criar o CRD e um objeto personalizado para gerenciar e controlar o CRD criado. Agora, se você deseja excluir o CRD criado, poderá seguir o procedimento fornecido abaixo.

Como excluir os CRDs criados em Kubernetes?

Os comandos Kubectl permitem excluir o CRDS em Kubernetes. Quando você tenta excluir a CRD em Kubernetes, os recursos personalizados associados a ele também serão excluídos. O Kubectl fornece o comando 'delete' para excluir qualquer recurso. O comando dado abaixo é usado para excluir a CRD que criamos nas etapas acima:

> kubectl delete -f vermelho.Yaml

Após a execução bem -sucedida deste comando, você obterá o seguinte resultado:

Agora que o CRD e os objetos personalizados associados a ele foram excluídos, você receberá um erro do servidor se tentar acessá -lo. Veja o comando dado abaixo, onde estamos tentando acessar a API RESTFUN de namespaced:

> Kubeclt Get Crontabs

Como o 'Crontabs' foi excluído, o servidor levantará o erro para esta ação. Veja a saída deste comando abaixo:

Conclusão

Este artigo foi uma visão geral rápida de como criar a definição de recursos personalizados, como criar um objeto personalizado para controlar o CRDS e como excluir o CRD do Kubernetes. Com a ajuda de exemplos de amostra, demonstramos cada etapa para ajudá -lo a entender o processo de maneira fácil e rápida.