Você está na página 1de 26

Kubernetes

Networking
Agenda
● PODS
● Services
○ NodePort
○ Ingress Controller
○ Load Balancing
● Demo

2
Hello!
I am Jayden Smith
I am here because I love to give presentations.
You can find me at @username

3
1

PODs
O primeiro nível de abstração

Quotations are commonly
printed as a means of
inspiration and to invoke
philosophical thoughts from the
reader.

5
Kubernetes Pods
e Docker
● Docker utiliza uma rede privada na bridge docker0
● Todos os containers formam um par veth para essa bridge
● Cada container recebe um IP em uma rede 172.17.1.x

A comunicação entre containers de um mesmo host é simples,


no entanto a comunicação multihost depende que o operador
faça todo trabalho.

6
Kubernetes Pods
e Docker
● Cada node kubernetes possui uma bridge cbr0
● Todos os containers de um Pod compartilham uma
interface veth para essa bridge
● Há um espaço de endereços comum entre os nodes
● Cada bridge recebe um endereço desse espaço
● Cada Pod recebe um IP, dentro do espaço destinado a
bridge que está conectado

7
eth0 eth0

docker0 cbr0

veth0 veth1 veth0

Docker Host Kubernetes Node

8
eth0 eth0

docker0 cbr0

veth0 veth1 veth0

Docker Host Kubernetes Node


Pod

9
eth0 eth0

docker0 docker0

veth0 veth1 veth0 veth1


172.17.0.2 172.17.0.2

Docker Host 1 Docker Host 2

10
10.0.1.0/16 via
192.168.0.2
10.0.2.0/16 via
192.168.0.3

192.168.0.2 192.168.0.3
eth0 eth0
10.0.1.1 10.0.2.1
cbr0 cbr0

10.0.1.2 10.0.2.2
veth0 veth0

:8000 :8100
Kubernetes Node1 Kubernetes Node2

11
Rede Overlay:
Flannel
● Não é o default do Kubernetes
● Todos os containers de um Pod compartilham uma
interface veth para essa bridge
● Há um espaço de endereços comum entre os nodes
● Cada bridge recebe um endereço desse espaço
● Outros exemplos:

12
2

Services
Tornando os pods visíveis
Service: o Proxy
dos pods
● Não há garantias de que um pod receba o mesmo IP caso
seja recriado (IP não persistente)
● Os services redirecionam tráfego para os pods,
independente do IP
○ Resistente à falhas
○ Mantém uma lista de encaminhamento baseada no
label dos pods
○ Monitora o estado dos pods

14
Service network
● Os serviços possuem uma rede separada, diferente da dos
pods
● Como um serviço pode funcionar de diferentes formas,
apenas os default receberão um IP dessa rede
○ Default = ClusterIP
○ Só é acessível dentro do cluster kubernetes
○ Não é recomendado para expor serviços na web
● Não existe como uma interface ou algo do tipo

15
192.168.0.2 192.168.0.3
eth0 eth0
10.0.1.1 10.0.2.1
cbr0 Serviço cbr0
Pod Cliente 10.3.240.2
10.0.1.2 10.0.2.2 10.0.2.2
veth0 veth0 veth1

Kubernetes Node1 Kubernetes Node2

16
192.168.0.2 192.168.0.3
eth0 eth0
10.0.1.1 10.0.2.1
cbr0 cbr0
Pod Cliente
10.0.1.2 10.0.2.2 10.0.2.2
veth0 veth0 veth1

Destino: 10.3.240.2
Vai para: ?
Kubernetes Node1 Kubernetes Node2

17
Destino: 10.3.240.2
Vai para: 10.0.2.2

192.168.0.2 192.168.0.3
eth0c eth0
10.0.1.1 10.0.2.1
cbr0 cbr0
Pod Cliente
10.0.1.2 10.0.2.2 10.0.2.2
veth0 veth0 veth1

Kubernetes Node1 Kubernetes Node2

18
Kube-Proxy
● Descreve como os serviços serão acessados
● IP-Tables + Netfilter
○ O Netfilter processa os pacotes baseado em regras
pré-configuradas
● Conecta-se à API do kubernetes e mantém as regras
atualizadas
● Opera em modo Kernel

19
Pod Servidor
Pod Cliente
:8080

veth0 veth1
Conecte em 10.0.2.3
10.3.240.2:80

Kubernetes API

Netfilter
Kube Proxy

eth0
Conecte em
10.0.2.3:8080
20
Node Port
30000 ... 30000

● Expõe uma porta específica Node 1 Node n


para todos os nodes
● Quando o tráfego chega a
essa porta é encaminhada ao SERVICE
serviço
● Em caso de mudança no IP
de um node o operador deve
reconfigurar direcionamento POD POD
ip:porta

21
Load
Balancer Load
Balancer
● Modo default de expor um
serviço
● Sem filtro de pacotes, sem
roteamento SERVICE
● Cada serviço exposto no load
balancer precisa de um IP

POD POD

22
Ingress
Ingress
● Atua como um ponto de mydomain.com mydomain.com/foo/bar
entrada ou um smart router
● Geralmente empregado em
HTTP
● Traz uma série de features, SERVICE SERVICE
como SSL, Auth, Routing
● GCLB, NginX, Istio e etc

POD POD POD POD

23
Demo
Kubernetes

24
SlidesCarnival icons are editable
shapes.

This means that you can:


● Resize them without losing
quality.
● Change fill color and
opacity.
● Change line color, width
and style.

Isn’t that nice? :)

Examples:

25
Now you can use any emoji as an icon!
And of course it resizes without losing quality and you can change the color.

How? Follow Google instructions


https://twitter.com/googledocs/status/730087240156643328

✋ ❤

and many more...

26

Você também pode gostar