0Pricing
DevOps Bootcamp · Aula

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: ClusterIP

Acessando 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: NodePort

Conectando 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: LoadBalancer

Acesso 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

  1. Expondo aplicações com serviços
  2. Tipos de serviço: ClusterIP, NodePort, LoadBalancer
  3. Ingress para acesso externo
  4. DNS e descoberta de serviços
← Voltar para DevOps Bootcamp