Expondo aplicações com serviços
Entenda o papel dos serviços ao fornecer endpoints de rede estáveis para os pods.
Expondo aplicações com serviços é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Pods: aqui hoje, gone amanhã
No Kubernetes, os Pods são as menores unidades implementáveis. Eles são projetados para ser temporários e podem ser criados, destruídos ou movidos pelo Kubernetes a qualquer momento.
Essa flexibilidade é excelente para a resiliência, mas cria um desafio: como outros aplicativos podem encontrar e se comunicar de forma confiável com esses Pods em constante mudança?
O problema do alvo móvel
Cada Pod recebe seu próprio endereço IP. Quando um Pod é reiniciado ou tem sua escala alterada, geralmente recebe um novo endereço IP. Conectar-se diretamente ao IP de um Pod é como tentar atingir um alvo móvel!
Imagine um aplicativo web com vários Pods. Se um Pod for reiniciado, seu IP mudará, interrompendo as conexões de outros serviços ou usuários.
Os Serviços vêm ao resgate!
É aqui que entram os Serviços do Kubernetes! Um Serviço fornece um ponto de acesso de rede estável e fixo para um conjunto de Pods.
Pense nele como um endereço permanente para seu aplicativo, mesmo que os Pods por trás dele estejam constantemente alterando seus endereços individuais.
Um gateway estável para os Pods
Um Serviço atua como uma camada de abstração sobre um grupo de Pods. Ele fornece a eles um único endereço IP e um nome DNS consistentes.
- Outros aplicativos usam o IP ou nome estável do Serviço.
- O Serviço então encaminha o tráfego para os Pods saudáveis que gerencia.
- Isso desacopla os clientes dos IPs individuais dos Pods.
Conectando Serviços aos Pods
Como um Serviço sabe para quais Pods encaminhar o tráfego? Ele usa rótulos e seletores!
Ao definir um Serviço, você especifica um selector. Qualquer Pod que corresponda a esses rótulos será automaticamente incluído no grupo desse Serviço.
Essa associação dinâmica significa que novos Pods são adicionados automaticamente e Pods não saudáveis são removidos.
Direcionando o tráfego de rede
Os Serviços gerenciam o fluxo do tráfego de rede. Eles definem portas para mapear as solicitações recebidas para as portas corretas nos seus Pods.
Principais conceitos de portas:
port: a porta na qual o próprio Serviço escuta.targetPort: a porta no Pod para a qual o Serviço encaminha o tráfego.
Criando um manifesto de Serviço
Assim como a maioria dos recursos do Kubernetes, os Serviços são definidos usando arquivos YAML. Veja a estrutura básica:
apiVersion:v1kind:Servicemetadata: nome, rótulosspec: contém a definição principal, incluindoselectoreports.
Seu primeiro Serviço: ClusterIP
O tipo de Serviço mais comum para comunicação interna é o ClusterIP. Ele expõe o Serviço em um endereço IP interno dentro do cluster.
Veja um exemplo de um aplicativo web simples:
apiVersion: v1
kind: Service
metadata:
name: my-web-service
spec:
selector:
app: my-webapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPImplementando seu Serviço
Depois de criar o YAML do seu Serviço, você poderá implementá-lo no cluster usando kubectl, assim como faz com Pods ou implantações.
Este comando instrui o Kubernetes a criar o Serviço com base na sua definição:
kubectl apply -f service.yamlUsando seu novo Serviço
Após a implementação, seu Serviço receberá um IP estável e um nome DNS dentro do cluster. Outros Pods poderão acessar seu aplicativo usando esse nome.
Por exemplo, outro Pod poderia se conectar a my-web-service:80, e o Serviço encaminharia o tráfego para os Pods corretos de my-webapp.
Verificação dos Serviços
Você aprendeu como os Serviços do Kubernetes fornecem acesso de rede estável a Pods dinâmicos.
Qual das opções a seguir descreve melhor a função principal de um Serviço do Kubernetes?
Recapitulação: conexões estáveis
Parabéns! Nesta lição, exploramos os Serviços do Kubernetes.
- Os Pods são efêmeros e têm IPs dinâmicos.
- Os Serviços fornecem pontos de acesso de rede estáveis para os Pods.
- Eles usam seletores para encontrar os Pods de destino.
- Os Serviços mapeiam a
portexterna para atargetPortinterna. - ClusterIP é um tipo comum para comunicação interna.
A seguir, exploraremos com mais detalhes os diferentes tipos de Serviços e seus usos!
Perguntas Frequentes
A aula “Expondo aplicações com serviços” é grátis?
Sim — o texto completo de “Expondo aplicações com serviços” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Expondo aplicações com serviços”?
Entenda o papel dos serviços ao fornecer endpoints de rede estáveis para os pods. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Expondo aplicações com serviços”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Expondo aplicações com serviços
- Tipos de serviço: ClusterIP, NodePort, LoadBalancer
- Ingress para acesso externo
- DNS e descoberta de serviços