Skip to main content

Kube Proxy

Num cluster Kubernetes, todos os pods têm acesso a todos os outros pods. Para viabilizar essa conectividade, uma solução de rede é implantada no cluster Kubernetes, estabelecendo uma rede virtual interna. Mais adiante, exploraremos as diversas opções disponíveis para essa finalidade.

É importante ressaltar que não há garantia de que o IP de um pod será sempre o mesmo, pois ele pode falhar e ser recriado pelo replication controller com um IP diferente. Por essa razão, referenciamos os pods através de services usando nomes, os quais resolvem os IPs correspondentes. É para isso que os services e seus endpoints existem, sendo gerenciados pelo kube-proxy.

Um service não se vincula diretamente a um pod, pois é uma entidade virtual que não possui interfaces ou um processo de escuta ativa. O service existe exclusivamente na memória do Kubernetes. O kube-proxy monitora a criação de novos services e, sempre que um novo service é criado, ele configura as regras apropriadas em cada nó para encaminhar o tráfego para as portas corretas dos pods. Isso é realizado através do uso do iptables ou do ipvs.

O kube-proxy roda em cada node como um serviço ou como pod, mas depende da instalação.

Alt text

Observe que rodando como pod o controller é um daemon set que garante um kube-proxy por node.

Alt text