Prática · Módulo 07 — Kubernetes: conceitos de base · Nível intermédio
Tenta primeiro sozinho! Realiza o projeto só com este enunciado. O corrigé (manifestos comentados + comandos) está no README.md, recolhido. Só o abras depois de teres tentado.
demo-k8s:1.0 já construída (senão: docker build -t demo-k8s:1.0 ./app).Compreender para que serve um Service e dominar os três tipos principais:
Tudo por cima de um mesmo Deployment: um só lote de Pods, três formas de os expor.
Os Pods são efémeros: nascem, morrem, mudam de IP. Portanto não se pode contar com o IP de um Pod. É preciso um endereço estável que reparta o tráfego para os Pods certos: esse é o papel do Service, que encontra os Pods graças aos labels.
demo-k8s:1.0).app: demo-back).ClusterIP chamado demo-clusterip (porto 80 → 5000).curl http://demo-clusteripNodePort chamado demo-nodeport (nodePort 30082).http://localhost:30082 no navegador.LoadBalancer chamado demo-lb (porto 8090).EXTERNAL-IP (kubectl get svc) e abre http://localhost:8090.kubectl get svc) e identifica: TYPE, CLUSTER-IP, EXTERNAL-IP, PORT(S).kubectl get endpoints demo-clusterip): são os IP dos Pods atrás do Service.k8s/deployment.yaml e os três Services (service-clusterip.yaml, service-nodeport.yaml, service-loadbalancer.yaml).kubectl get svc a mostrar os 3 tipos.curl http://demo-clusterip a partir de um Pod cliente) com 2 nomes de Pods diferentes.kubectl get endpoints demo-clusterip.| Critério | Esperado |
|---|---|
| ClusterIP | Acessível por nome DNS a partir de outro Pod |
| NodePort | Acessível em http://localhost:30082 |
| LoadBalancer | EXTERNAL-IP = localhost, acessível em http://localhost:8090 |
| Repartição | O nome do Pod muda entre dois pedidos |
| Endpoints | Os IP dos 3 Pods aparecem atrás do Service |
Bloqueado? O README.md contém o corrigé completo, as noções estão detalhadas em 01-CONCEPTS-SERVICES.md, e 02-COMMANDES.md lista todo o
kubectlútil — a consultar depois de teres tentado.