Sondas de prontidão de Kubernetes

Sondas de prontidão de Kubernetes
Kubernetes é uma estrutura fantástica para implantar microsserviços e aplicativos. Quando os pods não têm desempenho corretamente, eles são reiniciados ou removidos de um serviço, o que é um recurso maravilhoso. Kubernetes requer nossa assistência para determinar se um pod está operacional ou não. As sondas de contêiner são usadas para configurar isso. Neste artigo, tentaremos entender o que são as sondas de prontidão Kubernetes e como funciona.

O que são sondas de prontidão?

Kubernetes usa sondas de prontidão para descobrir quando é seguro transmitir tráfego para uma vagem ou quando chegar a hora de mover o pod para o estado pronto.

Uma investigação de prontidão avaliará se uma vagem específica aceitará o tráfego se utilizado como um endpoint de back -end para um serviço.

A sonda de prontidão corre para o restante da vida do pod; Isso significa que ele é executado mesmo depois que a vagem atingiu o estado pronto. Além disso, nosso aplicativo pode se tornar inacessível para manutenção ou algum trabalho em segundo plano, respondendo à sonda com várias respostas.

Indica se o contêiner está pronto para aceitar consultas. Caso a sonda de prontidão destrua por qualquer motivo, o controlador de terminais elimina o endereço IP das vagens dos pontos de extremidade entre todos os serviços que satisfazem o pod. A falha é a condição padrão de prontidão antes do atraso inicial.

Quando você deve usar uma sonda de prontidão?

A sonda de prontidão pode ser exatamente como a sonda de lactive (que determina quando um contêiner deve ser reiniciado) nesse cenário. Mas a presença da sonda de prontidão nas especificações sugere que o pod começará sem aceitar nenhum tráfego e aceitará apenas o tráfego quando a sonda começar a ter sucesso.

Você pode usar o LIVRE e uma sonda de prontidão se o seu aplicativo depender fortemente dos serviços de back -end. A sonda de prontidão garante que cada serviço essencial de back -end esteja disponível, além da sonda de LIVRE, que passa quando o aplicativo é saudável. Isso impede que o tráfego seja enviado para vagens que só podem reagir com mensagens de erro.

Uma sonda de inicialização pode ajudar se o seu contêiner exigir carregar uma grande quantidade de dados, arquivos de configuração ou migrações durante a inicialização. Uma sonda de prontidão é bastante útil se você deseja diferenciar um aplicativo que falhou e o outro que ainda está processando seus primeiros dados.

Pré -requisito

Alguns pré -requisitos devem ser atendidos antes de usar sondas de prontidão Kubernetes na prática. Ubuntu 20.0 é um sistema operacional Linux que deve ser instalado primeiro. Como o Kubernetes no Linux requer, instale o cluster Minikube também.

Antes de mudar para o terminal da linha de comando, devemos primeiro iniciar o Ubuntu 20.04, que já foi instalado. Digite “Terminal” no Ubuntu 20.04 Caixa de pesquisa do sistema para lançar rapidamente o terminal.

Depois disso, o minikube deve ser iniciado. Para iniciar o Minikube, use o comando do terminal “Minikube Start.”Este comando lançará o cluster Kubernetes e criará uma máquina virtual capaz de execução de cluster. A saída do comando "Minikube Inict" está representada abaixo:

Exemplo de sondas de prontidão Kubernetes

Podemos configurar um exemplo de aplicativo. Nesse caso, um servidor web nginx simples, para entender como as sondas de prontidão funcionam. Desenvolvemos uma configuração básica de implantação aqui. Cada aspecto do arquivo de configuração é apresentado nas duas capturas de tela anexadas:

Esta configuração deve ser salva em um arquivo chamado prontidão.Yaml.

Depois disso, use Kubectl Aplicar -F prontidão.Yaml para aplicá -lo. A instrução e sua saída podem ser vistos na captura de tela a seguir:

Agora desenvolvemos um serviço para o entendimento completo do exemplo.

Salve esta configuração no SVC.arquivo yaml.

Depois disso, use Kubectl Aplicar -F SVC.Yaml para aplicá -lo. A instrução e sua saída podem ser vistos na captura de tela a seguir:

Embora não exista um ponto final específico para sondas de prontidão, podemos obter informações sobre sua condição atual executando o comando kubectl descrever os pods. Execute o comando Kubectl Obtenha pods e verifique o status das vagens e outros detalhes.

As vagens serão exibidas, juntamente com seu status e estados prontos. Como você pode ver, nosso pod está funcionando como planejado. A instrução e sua saída podem ser vistos na captura de tela fornecida abaixo:

O resultado do “Kubectl descreve o pod” está anexado abaixo. A instrução e sua saída podem ser vistos na captura de tela a seguir:

A seção de eventos será exibida na parte inferior da saída do seguinte comando:

Com o comando KUBECTL GET Endpoints, podemos examinar os pontos de extremidade. O serviço Nginx tem um ponto final, como pode ser visto. A instrução e sua saída podem ser vistos na captura de tela a seguir:

Podemos usar o kubectl descrever os endpoints nginx comando para ver mais informações. A instrução e sua saída podem ser vistos na captura de tela a seguir:

Suponha que definimos o parâmetro da porta para a sonda de prontidão para 81 e salve a configuração. Primeiro, verifique o status do pod diretamente. O estado está "correndo", como você pode ver abaixo. A instrução e sua saída podem ser vistos na captura de tela a seguir:

Como não atualizamos a porta 81, ele retornou um valor booleano de "True", como mostrado na captura de tela abaixo. Se você alterar a porta 81 e se for atualizada com sucesso, ele retornará "false", indicando que o serviço nginx não tem pontos de extremidade porque o contêiner não está pronto para receber tráfego. A instrução e sua saída podem ser vistos na captura de tela abaixo.

Conclusão:

Neste artigo, os efeitos da sonda de prontidão foram observados e os parâmetros que podem ser configurados. Embora tenhamos focado na verificação HTTP, as técnicas que aprendemos podem ser aplicadas a qualquer um dos outros testes. Para configurar e operar sondas de prontidão, você deve primeiro entender a arquitetura e as dependências do seu aplicativo. Esperamos que você tenha achado este artigo útil. Verifique os outros artigos de dica do Linux para obter mais dicas e artigos.