Trinta DevOps

Dicas e macetes do mundo Open Source

Habilitando roteamento no Linux para acesso aos PODs (minikube).

Me deparei com uma situação, relativamente básica até. Construí uma solução simples para acesso aos Hosts, no caso, serviços provenientes de PODs do Kubernetes (Minikube).

Precisava acessar da minha LAN (192.168.0.0/24) os PODs criados no meu Minikube, sem alterar IP de Services ou Ingress. O IP que eles obtiveram, trabalharia com eles.

A solução então, foi habilitar meu roteamento no host onde reside meu minikube, um Ubuntu 20.04, virtualizado em Virtual Box.

Para habilitar o roteamento neste host, execute o comando como root:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Isto habilitará sua máquina a rotear pacotes instantaneamente.

Caso estiver com o firewall ativo (IPTABLES), adicione esta linha para permitir que o iptables faça o FORWARD das requisições:

# iptables -P FORWARD ACCEPT

Perfeito! sua máquina hospedeira do Minikube já tem a capacidade de rotear redes!

No caso agora, queremos acessar algum POD que disponibilize algum serviço!

Vou acessar um serviço que expõe um ingress, acessarei um repositório de imagem, o harbor!

Executei o comando abaixo para verificar as FQDN e o IP do meu Ingress em questão, quer obter o core.harbor.domain:

# kubectl get ingress -n harbor

Vemos aqui que esse endereço core.harbor.domain tem como IP o endereço 192.168.58.2.

(caso não tiver, instale-o, sudo apt install net-tools)

Percebe-se que uma das interfaces do meu host hospedeiro do minikube possui endereço nesta rede.

# ifconfig

Ótimo até aqui, percebemos que possuo um endereço 192.168.51.1.

Agora, em qualquer outra máquina da rede que quisermos acessar esse serviço, no caso o core.harbor.domain.

Adicione uma rota estática para ela, como exemplo abaixo:

Outro host Linux qualquer da rede:

# route add -net 192.168.58.0 netmask 255.255.255.0 gw 192.168.0.31 dev wlp3s0 

Neste caso, traduzindo o comando acima:

Estou criando uma rota estática para a rede 192.168.58.0/24 (alvo) que será alcançada pelo IP do Hospedeiro (192.168.0.31), que será o gateway desta rota.

Validando a rota:

# route -n

Agora, a última etapa restante é adicionar ao arquivo hosts a entrada para que possamos através do browser (no caso dessa aplicação) acessar a aplicação diretamente do nosso host que não seja o host do minikube.

Edite o arquivo /etc/hosts e adicione a linha (altere o IP e o nome conforme o obtido por você, para sua aplicação)

192.168.58.2    core.harbor.domain

Valide a comunicação:

# ping core.harbor.domain

Voilá, entre no seu browser e acesse sua aplicação conforme o FQDN correto!

Deixe um comentário