Kubernetes · 3 min read · Dec 08, 2025

Etichette e Selettori in Kubernetes

Le etichette non sono altro che coppie chiave-valore assegnate agli oggetti Kubernetes come Pods, Servizi, ecc. Le etichette possono essere utilizzate per organizzare e selezionare oggetti Kubernetes. Le etichette possono essere attaccate agli oggetti al momento della creazione e possono essere modificate in qualsiasi momento. Possiamo aggiungere più etichette agli oggetti Kubernetes.

I selettori sono utilizzati dagli utenti per selezionare un insieme di oggetti. Il selettore di etichette è il principale primitivo di raggruppamento in Kubernetes. L’API di Kubernetes supporta due tipi di selettori:

  1. Selettori basati su uguaglianza:
    Questo consente di filtrare per chiave e valore, dove gli oggetti corrispondenti devono soddisfare tutte le etichette specificate.
  2. Selettori basati su insiemi:
    Questo consente di filtrare le chiavi in base a un insieme di valori.

Per saperne di più su Etichette e Selettori, clicca qui.

In questo articolo, creeremo un Pod con etichette e reindirizzeremo le richieste ad esso dal servizio utilizzando il selettore. Eseguiremo anche operazioni di recupero e cancellazione su Pod e Servizio utilizzando Etichette/Selettori dalla riga di comando.

Requisiti

  1. Cluster Kubernetes con almeno 1 nodo worker.
    Se vuoi imparare a creare un Cluster Kubernetes, clicca qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 Master e 2 Nodi su AWS Ubuntu 18l04 EC2 Instances.

Cosa faremo

  1. Creare un Pod e un Servizio con Etichette e Selettore
  2. Comprendere le Etichette

Creare un Pod e un Servizio con Etichette e Selettori

Per creare un Pod con etichette, crea un nuovo file e aggiungi il seguente contenuto.

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

Per creare un servizio con un selettore, crea un file con la seguente definizione del servizio che utilizza il namespace predefinito.

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

Per creare un Pod, esegui il seguente comando.

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

create-pod-with-label

Per creare un Servizio, esegui il seguente comando.

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

create-service-with-selector

Ora, per controllare se il Selettore di Etichette funziona, prova ad accedere al servizio su NodeIP:NodePort.

Qui, l’IP del mio Nodo è 106.210.138.189 e il servizio è esposto sulla Porta=30385.

Poiché siamo in grado di accedere al Pod Nginx utilizzando il Servizio che abbiamo creato, significa che l’Etichetta e il Selettore hanno funzionato.

Comprendere le Etichette

Ora possiamo eseguire varie operazioni sul Pod e sul Servizio che abbiamo creato utilizzando l’Etichetta.

Per ottenere i Pod che corrispondono a un’etichetta di nostra scelta, possiamo usare “–selector” nel comando come segue.

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

get-pods-with-matching-labels

Possiamo anche usare “-l” invece di “–selector” per ottenere i Pod che corrispondono all’etichetta di nostra scelta.

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

alternative-to-selector-command

Possiamo anche eseguire l’operazione di cancellazione del pod specificando l’etichetta. I Pod che corrispondono all’etichetta possono essere cancellati utilizzando i seguenti comandi.

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

delete-pods-with-matching-label

Nel modo in cui possiamo cancellare i Pod che corrispondono alle etichette, possiamo anche cancellare il servizio.

Per cancellare il servizio che corrisponde a un’etichetta, usa il seguente comando. Inoltre, se non c’è alcun servizio che corrisponde all’etichetta specificata nel comando, non verrà eseguita alcuna operazione di cancellazione.

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

delete-service-with-matching-label

Conclusione

In questo articolo, abbiamo creato un Pod con etichette e abbiamo creato e puntato un servizio a quei Pod che corrispondono all’etichetta. Abbiamo anche visto come i Pod e i Servizi che corrispondono alle etichette possono essere cancellati.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.