Skip to main content

Criar um Load Balancer de Serviço

Com acesso ao Cluster, vamos criar um simples Deployment de uma aplicação web para servir como backend do Load Balancer.

cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
EOF

Verifique que o Deployment foi criado com sucesso:

kubectl get deployment nginx

NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 10s

O próximo passo é expor o Deployment através de um Service:

cat <<EOF | kubectl apply -f -
kind: Service
apiVersion: v1
metadata:
name: nginx
spec:
selector:
app: nginx
# o Service com o tipo LoadBalancer é o gatilho para a criação do Load Balancer
type: LoadBalancer
ports:
- port: 80
targetPort: 80
protocol: TCP
EOF

Verifique que o Service foi criado com o comando abaixo. Aguarde até que o campo EXTERNAL-IP receba um IP público:

kubectl get service nginx -w

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx LoadBalancer 10.109.104.212 <pending> 80:32030/TCP 14s
nginx LoadBalancer 10.109.104.212 201.23.76.42 80:32030/TCP 77s

Ainda no terminal, acesse o IP público recebido via curl para acessar o a aplicação web:

curl http://201.23.76.42