Tipos de serviço: ClusterIP, NodePort, LoadBalancer
Aprenda as diferentes maneiras de expor serviços dentro e fora do seu cluster Kubernetes.
Tipos de serviço: ClusterIP, NodePort, LoadBalancer é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 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.
Necessidades de Exposição de Serviços
No Kubernetes, os pods são efêmeros e têm endereços IP dinâmicos. Os serviços fornecem acesso de rede estável às suas aplicações. Mas como expô-los?
Dependendo de a sua aplicação precisar ser acessada de dentro ou de fora do cluster, e de como isso deve ocorrer, o Kubernetes oferece diferentes tipos de serviço. Vamos explorar os três principais!
ClusterIP: Acesso Interno
O ClusterIP é o tipo de serviço padrão. Ele atribui ao seu serviço um endereço IP interno estável, acessível somente de dentro do cluster Kubernetes.
- Os pods podem alcançar outros pods usando esses ClusterIPs e o nome do serviço.
- É perfeito para serviços de backend que não precisam de exposição externa direta.
- Pense nele como um balanceador de carga interno para os seus pods.
YAML do Serviço ClusterIP
Veja como definir um serviço do tipo ClusterIP. Observe o campo type: ClusterIP, embora ele seja opcional, pois esse é o tipo padrão.
apiVersion: v1
kind: Service
metadata:
name: my-internal-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPAcessando Serviços ClusterIP
Depois da implantação, o Kubernetes atribui automaticamente um endereço IP interno exclusivo (o ClusterIP) a esse serviço. Outros pods podem então usar o nome do serviço (por exemplo, my-internal-service) ou o IP dele para se conectar.
O serviço DNS do Kubernetes resolve o nome do serviço para o ClusterIP, tornando a comunicação interna fácil e confiável.
NodePort: Acesso Externo
E se você precisar acessar a sua aplicação de fora do cluster? É aí que entra o NodePort.
Um serviço NodePort expõe a sua aplicação em uma porta estática no endereço IP de cada nó do cluster. Qualquer tráfego enviado para NodeIP:NodePort é encaminhado ao seu serviço.
- É útil para desenvolvimento e pequenas implantações.
- O NodePort geralmente fica no intervalo de 30000 a 32767.
YAML do Serviço NodePort
Para criar um serviço NodePort, defina explicitamente type: NodePort. Se você não especificar uma porta, o Kubernetes escolherá automaticamente uma porta disponível no intervalo de NodePort.
apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30080 # Optional: K8s picks if omitted
type: NodePortConectando via NodePort
Depois de implantar um serviço NodePort, você poderá acessar a sua aplicação de fora do cluster usando <AnyNodeIP>:<NodePort>.
Por exemplo, se o IP de um nó for 192.168.1.100 e o NodePort atribuído for 30080, você poderá acessar a aplicação em http://192.168.1.100:30080.
LoadBalancer: Integração com a Nuvem
Em ambientes de produção hospedados em provedores de nuvem (AWS, GCP, Azure), o tipo de serviço LoadBalancer costuma ser preferido. Ele provisiona automaticamente um balanceador de carga externo na nuvem.
Esse balanceador de carga recebe um endereço IP público e distribui o tráfego externo entre os pods do seu serviço. Ele cuida de todo o roteamento complexo para você.
YAML do Serviço LoadBalancer
Definir um serviço LoadBalancer é simples. O seu provedor de nuvem fica responsável pelo trabalho pesado de provisionar o balanceador de carga externo.
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerAcesso Externo com LoadBalancer
Depois da implantação, o seu provedor de nuvem criará um balanceador de carga dedicado e atribuirá a ele um endereço IP ou nome de host externo. Você poderá usar esse endpoint público para acessar a sua aplicação.
Isso oferece uma forma robusta, escalável e altamente disponível de expor os seus serviços à internet.
Verificação Rápida: Tipos de Serviço
Quais tipos de serviço do Kubernetes permitem acesso externo direto à sua aplicação a partir de fora do cluster?
Recapitulação: Escolhendo o Seu Serviço
Você aprendeu sobre os três principais tipos de serviço do Kubernetes:
- ClusterIP: Para acesso exclusivamente interno dentro do cluster.
- NodePort: Expõe os serviços em uma porta estática no IP de cada nó, permitindo acesso externo.
- LoadBalancer: Integra-se aos provedores de nuvem para provisionar um balanceador de carga externo com um IP público.
Escolha o tipo adequado com base nas necessidades de exposição da sua aplicação e no seu ambiente de implantação!
Perguntas Frequentes
A aula “Tipos de serviço: ClusterIP, NodePort, LoadBalancer” é grátis?
Sim — o texto completo de “Tipos de serviço: ClusterIP, NodePort, LoadBalancer” é 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 “Tipos de serviço: ClusterIP, NodePort, LoadBalancer”?
Aprenda as diferentes maneiras de expor serviços dentro e fora do seu cluster Kubernetes. 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 2 de 4.
Quanto tempo leva a aula “Tipos de serviço: ClusterIP, NodePort, LoadBalancer”?
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