Kubernetes · 3 min read · Dec 08, 2025

Rótulos e Seletores no Kubernetes

Rótulos são nada mais do que pares de chave-valor atribuídos a Objetos Kubernetes como Pods, Serviços, etc. Rótulos podem ser usados para organizar e selecionar objetos Kubernetes. Rótulos podem ser anexados a objetos no momento da criação e podem ser modificados a qualquer momento. Podemos adicionar múltiplos Rótulos a objetos Kubernetes.

Seletores são usados pelos usuários para selecionar um conjunto de objetos. O seletor de rótulos é o núcleo da primitiva de agrupamento no Kubernetes. A API do Kubernetes suporta dois tipos de seletores:

  1. Seletores baseados em igualdade:
    Isso permite filtrar por chave e valor, onde os objetos correspondentes devem satisfazer todos os rótulos especificados.
  2. Seletores baseados em conjunto:
    Isso permite filtrar chaves de acordo com um conjunto de valores.

Para saber mais sobre Rótulos e Seletores, clique aqui.

Neste artigo, criaremos um Pod com Rótulos e redirecionaremos as solicitações para ele a partir do serviço usando Seletores. Também realizaremos operações de obter e excluir no Pod e no Serviço usando Rótulos/Seletores na linha de comando.

Pré-requisitos

  1. Cluster Kubernetes com pelo menos 1 nó trabalhador.
    Se você quiser aprender a criar um Cluster Kubernetes, clique aqui. Este guia ajudará você a criar um cluster Kubernetes com 1 Master e 2 Nós em Instâncias EC2 AWS Ubuntu 18l04.

O que faremos

  1. Criar um Pod e Serviço com Rótulos e Seletor
  2. Entender Rótulos

Criar um Pod e Serviço com Rótulos e Seletores

Para criar um Pod com rótulos, crie um novo arquivo e adicione o seguinte conteúdo nele.

vim my-lable-demo-pod.yml
apiVersion: v1
kind: Pod
metadata:
  name: label-demo-pod
  labels:
    environment: test
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

label-demo-pod

Para criar um serviço com um seletor, crie um arquivo com a seguinte definição de serviço que usa o namespace padrão.

vim my-selector-demo-service.yml
apiVersion: v1
kind: Service
metadata:
  name: selector-demo-service
  namespace: default
  labels:  
    environment: test
    app: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:    
    app: nginx
  type: NodePort

selector-demo-service

Para criar um Pod, execute o seguinte comando.

kubectl create -f my-lable-demo-pod.yml
kubectl get pods

create-pod-with-label

Para criar um Serviço, execute o seguinte comando.

kubectl create -f my-selector-demo-service.yml
kubectl get service

create-service-with-selector

Agora, para verificar se o Seletor de Rótulos está funcionando, tente acessar o serviço em NodeIP:NodePort.

Aqui, o Ip do meu Nó é 106.210.138.189 e o serviço está exposto na Porta=30385.

Como conseguimos acessar o Pod Nginx usando o Serviço que criamos, isso significa que o Rótulo e o Seletor funcionaram.

Entender Rótulos

Agora, podemos realizar várias operações no Pod e no Serviço que criamos usando o Rótulo.

Para obter Pods que correspondem a um rótulo de nossa escolha, podemos usar “–selector” no comando da seguinte forma.

kubectl get pods --selector environment=test
kubectl get pods --selector app=nginx

get-pods-with-matching-labels

Podemos também usar “-l” em vez de “–selector” para obter os Pods que correspondem ao rótulo de nossa escolha.

kubectl get pods -l environment=test
kubectl get pods -l environment=prod

alternative-to-selector-command

Podemos até realizar a operação de exclusão do pod especificando o rótulo. Pods que correspondem ao rótulo podem ser excluídos usando os seguintes comandos.

kubectl get pods
kubectl delete pods -l environment=test
kubectl get pods

delete-pods-with-matching-label

Da mesma forma que poderíamos excluir Pods que correspondem aos rótulos, também podemos excluir o serviço.

Para excluir o serviço que corresponde a um rótulo, use o seguinte comando. Além disso, se não houver serviço correspondente ao rótulo especificado no comando, nenhuma operação de exclusão será realizada.

kubectl get service
kubectl delete service -l environemt=test
kubectl delete service -l environment=test
kubectl get service

delete-service-with-matching-label

Conclusão

Neste artigo, criamos um Pod com rótulos nele e criamos e apontamos um serviço para aqueles Pods que correspondem ao rótulo. Também vimos como Pods e Serviços que correspondem aos rótulos podem ser excluídos.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.