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

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content

Social

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content

Social

Contact us

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Opportunities

Our content