O recurso de depuração Kubectl

O recurso de depuração Kubectl
Um problema comum com as instalações de novas Kubernetes é quando um serviço não está executando corretamente. Você criou um serviço e executa seus pods por meio de uma implantação ou outro controlador de tarefas. No entanto, nada acontece quando você tenta acessá -lo. Neste post, explicaremos o pano de depuração, um novo recurso em Kubectl. Cada pod em Kubernetes é executado como um recipiente do docker, que é separado usando o recurso de isolamento de namespace linux. Para processos, cada contêiner possui seu sistema de arquivos. A capacidade de depuração automatiza o acessório de contêiner e o compartilhamento de namespace com um único comando e sem arquivos de manifesto.

Todo desenvolvedor e engenheiro de DevOps que trabalha com Kubernetes precisa depurar cargas de trabalho e pods diariamente. Toges simples de Kubectl ou Kubectl descrevem as vagens geralmente podem identificar a fonte de um problema. No entanto, certos problemas são mais difíceis de rastrear. Você pode tentar o Kubectl Exec em certos casos. No entanto, mesmo isso pode não ser adequado, porque alguns recipientes, como distríbos, nem sequer têm uma concha que você pode. Então, se todos os itens anteriores falharem, quais são as nossas opções? O Kubectl Debug, como uma nova instrução adicionada há pouco tempo (v1.18), seria a ferramenta certa para solucionar cargas de trabalho em Kubernetes.

Pré -requisitos

Antes de usar o Kubectl, devemos primeiro validar o sistema operacional. Em nossa situação, estamos executando o Ubuntu 20.04 em um computador. Outras distribuições Linux podem ser pesquisadas para entender se são adequadas para suas necessidades ou não. Um cluster Minikube é necessário para implementar os serviços Kubernetes no Linux. Para fazer este guia funcionar, você precisará configurar um cluster Minikube em seu sistema. Minikube facilita a avaliação de recursos críticos de um Kubernetes agrupando uma brisa, com qualquer coisa facilmente ativada ou removida. Use o terminal da linha de comando para configurar um cluster Minikube. Uma das duas abordagens está disponível para abri -lo. Procure "Terminal" na seção de pesquisa de aplicativos do seu sistema. Um atalho de teclado que pode ser usado para isso é Ctrl+Alt+T:

$ minikube Iniciar

Como executar comandos em uma vagem

Você deseja observar o que um pod operando no cluster vê durante várias das fases que se seguem. Executar um POD interativo BusyBox é o método mais simples para fazer isso:

$ kubectl run -it -rm -restart = Never BusyBox -Image = GCR.IO/Google-Containers/Busybox SH

Como configurar

Vamos correr algumas vagens para esta lição. Você pode utilizar suas próprias informações, porque provavelmente está depurando seu próprio serviço ou pode acompanhar facilmente e obter um segundo ponto de dados:

$ KUBECTL Criar Nomes de host de implantação -Image = GCR.io/sirt_hostname

O tipo e o nome do recurso produzido ou alterado serão impressos por instruções Kubectl, que podem ser usadas posteriormente em comandos posteriores. Vamos aumentar o número de réplicas na implantação para três:

$ KUBECTL SCALE DEPLOMENT HOSTNAMES -NAMES -REPLICAS = 3

Você pode verificar se seus pods estão operando fazendo o seguinte:

$ kubectl get pods -l app = hostnames

Você também pode verificar se seus pods estão funcionando. Dessa forma, você pode obter uma lista de endereços IP de pod e testá -los imediatamente:

$ kubectl get pods -l app = hostnames \

O recipiente de amostra neste post usa http na porta para fornecer seu nome de host. Mas se você estiver depurando isso por conta própria, use o número da porta em que seus pods estiverem. Do interior de um pod:

Se você não está obtendo os resultados que deseja nesta fase, é possível que seus pods não estejam saudáveis ​​ou não estejam ouvindo na porta que você acha que eles são. Você poderia querer investigar os logs Kubectl, ou pode precisar para Kubectl Exec em suas vagens imediatamente e depurar a partir daí. Se todas as etapas foram executadas com precisão até agora, você pode iniciar sua investigação sobre por que seu serviço não está executando corretamente.

O serviço é criado?

O leitor astuto pode ter uma ideia de que você ainda não construiu um serviço, que é, de fato, de propósito. Esta etapa geralmente é esquecida, mas é o primeiro item a verificar. Se o serviço ainda não estiver lá, crie -o primeiro e verifique se ainda está lá.

As vagens de destino se enquadram em qualquer regra de entrada de políticas de rede?

Se você tiver alguma regra de entrada de políticas de rede que possa afetar o tráfego de entrada para os nomes de hosts-* vagens, você deve revisá-las.

O serviço está adequadamente definido?

Embora pareça pequeno, verifique duas vezes que o serviço que você criou é preciso e corresponde à porta do seu pod. Releia seu serviço e confirme. Se você chegou até aqui, verificou que seu serviço está definido e resolvido corretamente pelo DNS. Agora é a hora de verificar se o serviço está pegando os pods que você criou.

Conclusão

Este artigo cobriu tudo o que você precisa saber sobre o recurso de depuração de Kubectl. Também fornecemos exemplos extensos para ajudá -lo. Você pode seguir todas as etapas deste guia para realizar seu trabalho de maneira eficaz. Esperamos que você tenha achado este artigo útil. Encontre mais dicas e guias na dica do Linux.