Parte 1

Instale o metallb para obter LoadBalancers nos seus clusters

helm repo add metallb https://metallb.github.io/metallbhelm repo updatefor ctx in kind-demo kind-demo3; do helm install metallb -n metallb --create-namespace metallb/metallb --kube-context=${ctx}done

Crie um `ipaddresspool` para cada cluster baseado em sua rede docker kind, mas lembre-se para cada cluster, um `ipaddresspool` diferente, para evitar conflito.

Para isso, primeiro descubra o range de IP do seu kind network

docker network inspect kind -f '{{.IPAM.Config}}'{172.17.0.0/16  172.17.0.1 map[]} {fc00:f853:ccd:e793::/64  fc00:f853:ccd:e793::1 map[]}]

O meu é `172.17.0.16`, então vou utilizá-lo na configuração de IPs para meus services do tipo `LoadBalancer`.

kubectl --context=kind-demo apply -f - <<EOFapiVersion: metallb.io/v1beta1kind: IPAddressPoolmetadata:  name: first-pool  namespace: metallb-systemspec:  addresses:  - 172.17.0.61-172.17.0.70---apiVersion: metallb.io/v1beta1kind: L2Advertisementmetadata:  labels:    todos: verdade  name: example  namespace: metallb-systemEOF

E DEPOIS....

kubectl --context=kind-demo3 apply -f - <<EOFapiVersion: metallb.io/v1beta1kind: IPAddressPoolmetadata:  name: first-pool  namespace: metallb-systemspec:  addresses:  - 172.17.0.71-172.17.0.80---apiVersion: metallb.io/v1beta1kind: L2Advertisementmetadata:  labels:    todos: verdade  name: example  namespace: metallb-systemEOF

Essa é a hora de você validar se sua máquina consegue se conectar a um serviço nos clusters, do tipo `LoadBalancer`.

# crie um deploy simples:

kubectl create deploy web --image nginx --context=kind-demo

# expõe o deploy como LoadBalancer

kubectl expose deploy web --port 80 --target-port 80 --type LoadBalancer --context=kind-demo

# verifique o IP designado ao seu service

kubectl get service web --context=kind-demoNAMESPACE   NAME       TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGEdefault     web        LoadBalancer   10.101.106.156   172.17.0.61   80:31507/TCP      20s

# faça um teste pra ver se está no ar

curl 172.17.0.61<!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>html { color-scheme: light dark; } .... bla bla bla bla```

# deu certo? Pode apagar

kubectl delete deploy,svc web --context=kind-demo

Faça o mesmo no outro cluster mudando o `--context=kind-demo3`

Em caso de problemas verifique:

  • firewall dentro da sua máquina

  • rede correta do docker network kind

  • se você distribuiu corretamente os `ipaddresspool` nos metallb, sem repeti-los nos clusters, a idéia é cada um com seu pool de IPs para LoadBalancers, hein.


Em breve publicaremos a parte 3! Fique ligado.

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos