Escolar Documentos
Profissional Documentos
Cultura Documentos
Kubernetes Networking
Kubernetes Networking
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
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
8
eth0 eth0
docker0 cbr0
9
eth0 eth0
docker0 docker0
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
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
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
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
23
Demo
Kubernetes
24
SlidesCarnival icons are editable
shapes.
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.
✋ ❤
26