Como criar um Statefulset em Kubernetes

Como criar um Statefulset em Kubernetes
Neste guia, definiremos como gerar um Statefulset em Kubernetes. Este guia ajudará você a gerenciar os aplicativos Kubernetes com o Statefulset enquanto mostra como criar, atualizar, escalar e excluir as vagens do Statefulset. Os estados estabelecidos são usados ​​em sistemas distribuídos e aplicações com estado. Antes de começar a aprender a criar o Statefulset em Kubernetes, você deve se familiarizar com o básico de sistemas distribuídos e administração de aplicativos com estado em Kubernetes. No final deste artigo, você poderá criar, escalar, atualizar e excluir o Statefulset em Kubernetes.

Pré -requisitos

Ubuntu 20.02 ou qualquer outra versão mais recente do Ubuntu deve ser instalada em seu sistema. Ative a máquina virtual em seu sistema Ubuntu para executar os comandos Kubernetes. Você deve estar familiarizado com pods, DNS de cluster, estados de estados e a ferramenta de linha de comando KUBECTL.

Siga este guia passo a passo para aprender a criar um conjunto Statefulset em Kubernetes:

Etapa 1: Inicie o painel Kubernetes

Para executar o aplicativo Kubernetes ou comandos no aplicativo Kubernetes, você precisa ter um terminal Kubernetes em execução. O 'Minikube' é o terminal Kubernetes, usado para executar os vários comandos nos aplicativos Kubernetes. Use o comando dado abaixo para iniciar o minikube:

Kalsoom@VirtualBox> Minikube Iniciar

Ao entrar neste comando no terminal Kubernetes, pressione Enter para executá -lo. Depois de implementar a instrução, você obterá o seguinte resultado:

Etapa 2: abra/crie um arquivo YAML

O próximo passo é abrir um arquivo YAML, se você já possui o arquivo criado. Caso contrário, você pode criar um novo arquivo YAML para ser usado para criar o StatefulSet. Kubernetes fornece o comando 'nano' para criar ou abrir um arquivo no sistema Kubernetes. Especifique o nome do arquivo com a extensão do arquivo e execute o comando nano nele. Veja o comando dado abaixo:

kalsoom@virtualbox> nano textweb.Yaml

Ao executar esse comando no terminal Kubernetes, você verá o seguinte arquivo aberto no terminal Kubernetes:

Etapa 3: Crie a configuração do arquivo YAML

O comando 'Kubectl Create' é usado para criar a configuração dos serviços. Temos o arquivo YAML e todas as especificações para o serviço Statefulset mencionado no arquivo. O arquivo será usado com o comando 'create' para criar diretamente o recurso Kubernetes no terminal Kubernetes. Veja o comando dado abaixo para criar diretamente os Recursos Kubernetes:

Kalsoom@VirtualBox> Kubectl Create -f testWeb.Yaml

Após a execução bem -sucedida do comando, você verá a mensagem 'criada' no terminal. Dois pods serão criados com este comando e cada um deles estará sendo executado no Nginx WebServer.

Etapa 4: Crie os pods Statefulset

O próximo passo é criar as vagens para o Statefulset. O comando usado para criar os pods para o Statefulset é fornecido abaixo:

kalsoom@virtualbox> kubectl get pods -w -l app = nginx

Depois de executar este comando, você poderá ver o seguinte resultado no Terminal Kubernetes:

Etapa 5: Obtenha os serviços do Nginx WebServer

Como criamos dois pods na etapa anterior e cada um deles está sendo executado no servidor nginx, vamos obter os serviços desses pods do Nginx WebServer. Use o seguinte comando para obter os serviços nginx:

Kalsoom@VirtualBox> Kubectl Get Service Nginx

Escreva este comando no terminal Minikube e pressione o comando Enter para executá -lo e veja o seguinte resultado:

Etapa 5: Obtenha o Web Statefulset

O próximo passo é confirmar que ambos os pods foram criados com sucesso e isso pode ser feito usando o Web StatefulSet. Para obter o Web Statefulset, use o seguinte comando:

kalsoom@virtualbox> kubectl get statefulset web

Escreva este comando no terminal Kubernetes, após a execução, você obterá a seguinte saída:

Etapa 6: Crie as réplicas ordenadas do Statefulset

As vagens para o Statefulset com várias réplicas são criadas em ordem seqüencial. Cada pod é implantado em uma sequência de 0 para N-1. Vamos configurar a ordem dos pods criados no terminal. Use o comando 'kubectl get' para configurar o pedido. Veja o comando completo abaixo:

kalsoom@virtualbox> kubectl get pods -w -l app = nginx

Quando você executa esse comando no terminal Kubernetes, a saída acabará por se parecer com a dada no trecho abaixo:

Como você pode ver na saída, até que a vagem web-0 esteja em execução, a vagem da Web-1 não foi lançada.

Etapa 7: Examine o índice ordinal de pods

Os pods são criados com o índice ordinal e eles também têm uma identidade de rede estável, vamos examinar o índice ordinal das vagens do Statefulset com o seguinte comando:

kalsoom@virtualbox> kubectl get pods -l app = nginx

Este comando mostrará a identidade exclusiva dos pods com base no Índice Ordinal exclusivo, que foi atribuído pelo controlador Statefulset para cada pod. O nome do pod completo é dado como - e dois pods serão criados para o Web Statefulset porque possui duas réplicas. Agora, vamos ver a saída abaixo:

Etapa 8: implemente a instrução do nome do host em cada pod

Um nome de host estável foi alocado para cada vagem aterrada em seu índice ordinal. Para implementar o nome do host atribuído a cada pod, podemos usar o seguinte comando:

kalsoom@virtualbox> para i em 0 1; do kubectl exec "web- $ i" -sh -c 'hostName'; feito

Este comando mostrará as duas réplicas da vagem. Veja a saída fornecida no snippet abaixo:

Etapa 8: Examine os endereços DNS em cluster

Os endereços DNS em cluster dos pods são examinados usando o 'nslookup'. O pacote 'dnsutils' fornece a funcionalidade 'nslookup' para executar o comando 'kubectl run' no contêiner Statefulsetset. O comando completo é fornecido abaixo para sua orientação:

kalsoom@virtualbox> kubectl run -i - -tty --image BusyBox: 1.28 DNS-Test--Restart = Never--RM

Isso iniciará um novo shell onde você pode executar o contêiner DNS de texto com o seguinte comando:

kalsoom@virtualbox> nslookup web-o.nginx

Quando você executa este comando, uma saída semelhante estará disponível no seu terminal:

Agora, verifique o status das vagens do Statefulset e depois saia da concha do contêiner. Novamente, use o comando 'Kubectl Get' para ver as vagens do Statefulset.

Etapa 9: Exclua os pods no Statefulset

A etapa final é apagar todas as vagens no Statefulset. E para isso, você pode praticar a instrução 'Kubectl Excluir'. Veja o comando completo dado abaixo:

kalsoom@virtualbox> kubectl delete pod -l app = nginx

Quando você executa este comando no terminal Kubernetes, a saída acabará por ficar assim:

Conclusão

Neste artigo, aprendemos a criar, atualizar e excluir os pods no Statefulset de Kubernetes. Usamos diferentes comandos Kubectl para configurar as vagens no Statefulset. O arquivo YAML foi usado para a definição dos serviços dos pods e para configurar esses serviços no Statefulset