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