Obtenha o log de entrada de Kubernetes para depuração

Obtenha o log de entrada de Kubernetes para depuração

Você sabe o que o get Kubernetes Ingress Log for Debugging? Os problemas de rede são cada vez mais desafiadores para diagnosticar à medida que as implantações crescem cada vez maiores. Este tutorial mostra como usar o plug-in Ingress-Nginx Kubectl para depurar o acesso ao seu aplicativo através do controlador de entrada. Vamos primeiro ver a definição de entrada de Kubernetes, o que é importante para entender melhor o tópico principal.

O que é ingresso Kubernetes?

A definição de entrada é "entrada" em seu sentido literal.

Na comunidade Kubernetes, isso também é verdadeiro. Um tráfego que entra no cluster é referido como entrada, enquanto um tráfego que deixa o cluster é referido como saída.


Como um recurso nativo de Kubernetes, a entrada é comparável a pods, implantações, etc. Você pode acompanhar as configurações de roteamento do DNS usando Ingress. O controlador de entrada é o que executa o roteamento. Faz isso lendo as regras de roteamento diretamente dos objetos de entrada que são armazenados em etcd. Sem entrada de Kubernetes, você pode expor um aplicativo ao mundo exterior, incluindo um balanceador de carga do tipo de serviço nas implantações.

Como funcionam a entrada de Kubernetes?

Há duas coisas principais que você precisa ser claro. Estes são:

Kubernetes Ingressing Recurso

Este recurso é responsável por manter todas as regras de roteamento de DNS no cluster. As regras de roteamento DNS são especificadas no Kubernetes Ingress Resource, um recurso nativo de Kubernetes. Em outras palavras, você mapeia o tráfego DNS externo para os destinos internos de serviço Kubernetes.

Controlador de entrada de Kubernetes

Ao obter acesso às regras do DNS que são implementadas pelos recursos de entrada, os controladores de entrada de Kubernetes (nginx/haproxy, etc.) estão encarregados do roteamento.

A implementação do controlador de entrada não é nativo de Kubernetes. Como resultado, não pode ser um padrão de cluster.

Para que as regras de entrada funcionem, devemos configurar um controlador de entrada. Existem muitos controladores de entrada e entrada de negócios no mercado. A versão de um cluster de um servidor proxy da web reversa serve como um controlador de entrada. Este servidor proxy reverso baseado em Kubernetes está exposto a um serviço de balanceador de carga.

Qual é o controlador de entrada?

Um programa de administração de cluster chamado Ingress Controller configura um balanceador de carga HTTP seguindo os recursos de entrada. O balanceador de carga pode ser um hardware ou balanceador de carga em nuvem, ou pode funcionar como software dentro do cluster. Diferentes implementações de controlador de entrada são necessárias para vários balanceadores de carga.

Ao usar o nginx, o balanceador de carga e o controlador de entrada são implantados em um pod.

Observe que um controlador de entrada ativo deve estar presente no cluster para o recurso de entrada para funcionar.

Os controladores de entrada não são lançados automaticamente com um cluster, em contraste com os outros tipos de controladores que funcionam como um componente do Kube Controller-manager binário.

Pré -requisitos:

Você precisa de um cluster Kubernetes e deve configurar a ferramenta de linha de comando kubectl para se conectar com seu cluster. Você pode emitir os comandos para os clusters de Kubernetes usando a ferramenta de linha de comando kubectl. Os aplicativos podem ser implantados, os recursos do cluster podem ser inspecionados e gerenciados, e os logs podem ser vistos usando Kubectl.

Se você não tem um cluster atualmente, o Minikube pode ser usado para construir um. Minikube é um Kubernetes local que visa simplificar o aprendizado e o desenvolvimento de Kubernetes.

Kubernetes pode ser acessado com apenas um comando se você tiver um ambiente de máquina virtual ou um ambiente de contêiner do Docker (ou similarmente compatível). Vamos começar o processo passo a passo agora:

Etapa 1: comece o minikube

Usando a ferramenta Minikube, você pode executar os Kubernetes localmente. O Minikube executa um cluster Kubernetes local tudo-em-um ou de vários nós no seu computador diário ou para testar os Kubernetes (incluindo Windows, Linux PCs e MacOS). Aqui está o comando para iniciar o minikube:

> Minikube Start



Etapa 2: Ative o controlador de entrada

Vamos demonstrar como ativar o controlador de entrada nginx nesta etapa. Realizar o seguinte comando:

> Minikube Addons Atable Ingress



Etapa 3: Verifique se o controlador de entrada nginx está funcionando ou não

Agora, é importante verificar se o controlador nginx está ativo ou não. O comando a seguir pode ser usado para confirmar que:

> Kubectl Get PODS -N Ingress -Nginx



Esteja ciente de que você pode não notar que essas vagens estão funcionando corretamente por até um minuto. A saída é exibida na imagem anterior.

Etapa 4: Crie um aplicativo Hello World

Aqui, usamos o seguinte comando para criar uma implantação:

> Kubectl Criar implantação web --image = GCR.io/google-amostras/hello-app: 1.0



O comando que é executado e seus resultados são anexados na imagem anterior. Na saída, "Hello-App" pode ser visto.

Etapa 5: Exponha a implantação

Agora, mostraremos um comando para expor uma implantação específica. O comando é mencionado o seguinte:

> kubectl exponha a implantação kalsoom --type = nodeport --port = 8080



Você pode ver a saída "Serviço/Kalsoom Exposed" na imagem anterior.

Etapa 6: visite o serviço via nodeport

Este é um passo importante em que mostramos como você pode visitar o serviço criado através do Nodeport. O comando para alcançar esse objetivo é dado no seguinte:

> Minikube Service Kalsoom --url



O comando junto com a saída é anexado na imagem anterior.

Agora, o endereço IP do Minikube e o NodEport simplificam a visualização do aplicativo de amostra. Você pode usar o recurso de entrada para acessar o aplicativo na seguinte etapa.

Etapa 7: Crie uma entrada

Aqui, criamos uma entrada que transmite o tráfego para o seu serviço. O comando é mencionado o seguinte:

> kubectl Aplicar -f https: // k8s.IO/Exemplos/Service/Networking/Exemplo-Ingress.Yaml



Como você pode ver, o comando é executado com sucesso.

Etapa 8: Verifique o endereço IP

Verificamos se o endereço IP está definido ou não. Para isso, usamos o seguinte comando dado:

> Kubectl Get IngleR



Na saída, você deve ver um endereço IPv4 na coluna de endereço.

Conclusão

Uma visão geral do registro do controlador de entrada nginx é fornecida neste artigo. Para resumir, os logs de acesso e erros para o nginx, juntamente com os logs do processo do controlador de entrada, que cria a configuração Nginx e recarrega o nginx para aplicá -lo, são disponibilizados pelo controlador de entrada nginx.