Estou tentando reproduzir o mesmo experimento explicado emaqui. Basicamente, o experimento consiste em fazer uma solicitação HTTP de um pod dentro de um cluster para outro pod dentro do mesmo cluster, mas não consigo obter o mesmo resultado. Tenho um pod com o seguinte IP: 10.1.97.85/24, no mesmo cluster de outro pod que possui uma aplicação que envia uma resposta HTTP com o endereço IP do cliente que enviou a solicitação. Como disseaqui, o seguinte é verdadeiro:
Os pacotes enviados para ClusterIP de dentro do cluster nunca são originados por NAT se você estiver executando o kube-proxy no modo iptables
Realizei o teste citado acima, mas quando realizo a requisição do pod com endereço IP 10.1.97.85/24 recebo uma resposta HTTP dizendo que a requisição foi enviada por um pod com IP 10.1.97.1, gostaria de saber o que está acontecendo.
Realizei os experimentos acima com microk8s e kubernetes na versão 1.17.9, e ambos os pods estão nos mesmos nós, pois tenho apenas um nó.
Eu criei minha implantação com o comando:
microk8s.kubectl create deployment source-ip-app --image=k8s.gcr.io/echoserver:1.4
O comando acima criou o pod com o aplicativo que irá ecoar o client_address na resposta HTTP.
Eu expus a implantação acima com o comando:
microk8s.kubectl expose deployment source-ip-app --name=clusterip --port=80 --target-port=8080
Iniciei outro pod com o comando:
microk8s.kubectl run busybox -it --image=busybox --restart=Never --rm
E dentro do pod criado acima eu fiz o comando:
ip addr
Com o comando acima obtive o endereço IP: 10.1.97.85 mas quando executei um wget para o serviço recebi de volta o endereço IP: 10.1.97.85