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