Kubernetes

selector de etiquetas Kubernetesentender cada coincidencia

Valida las etiquetas y descubre qué condiciones cumple cada recurso de la entrada.

selector de etiquetas Kubernetes

Etiquetas o recursos JSON

Resultados de coincidencia

Las entradas se procesan en este navegador. Sin subir datos, conectar al clúster ni consultar la red.

Formato de entrada y sintaxis

= · == · != · in · notin · key · !key. Las comas combinan condiciones con AND; un selector vacío coincide con todo.

Límites: 500.000 caracteres JSON, 8.192 de selector, 500 recursos, 64 condiciones y 256 etiquetas por recurso.

Semántica: Kubernetes 1.35 / apimachinery v0.35.0; igualdad, conjuntos y existencia.

La entrada cambió. Vuelve a probar antes de exportar.

Un selector de etiquetas Kubernetes puede elegir más Pods de los previstos: env!=prod también acepta objetos sin la clave env. Antes de cambiar una consulta o un Service, conviene mirar cada condición y no solo el número de coincidencias.

El modo mapa interpreta el objeto completo como etiquetas. El modo recursos lee metadata.labels. Cada modo conserva su entrada por separado, de modo que una etiqueta llamada metadata no se confunde con la estructura de un recurso.

¿Por qué revisar un selector de etiquetas Kubernetes?

Encuentra la condición que excluye un recurso

Este selector de etiquetas Kubernetes evalúa todas las condiciones aunque alguna anterior falle. Un Pod web de desarrollo puede cumplir app=web y !paused, pero quedar fuera del conjunto de entornos. El detalle permite corregir la hipótesis concreta sin quitar filtros al azar.

Tres tarjetas de recursos atraviesan varias condiciones; solo la que cumple todas entra en el grupo seleccionado.

Distingue una cadena vacía de una clave ausente

Una etiqueta con valor "" sigue existiendo. Una clave ausente no tiene valor. El informe presenta ambos casos por separado, lo que permite entender los operadores negativos sin confundirlos con una prueba de existencia.

Tarjetas con un campo lleno, uno vacío y uno ausente muestran rutas de decisión diferentes.

Tres comprobaciones antes de reutilizar la consulta

01

Elige dónde están las etiquetas

El modo recursos admite un objeto, un array o un tipo List o *List con un array items. Solo consulta metadata.labels; no recorre automáticamente la plantilla de Pods de un Deployment.

02

Prueba también sin la clave

Cambia production por development en el ejemplo y después elimina environment. Compara in con notin. La prueba automática espera 350 ms tras escribir; al desactivarla puedes usar el botón o Ctrl/Cmd + Intro.

03

Revisa el detalle y el alcance del informe

Despliega cada recurso para ver etiquetas y condiciones. La pantalla añade 50 entradas cada vez, pero el informe copiado o descargado incluye todas. Editar cualquier entrada desactiva la exportación hasta obtener un resultado nuevo.

De la sintaxis de etiquetas a la selección explicada

Reglas distintas para claves y valores

El prefijo DNS opcional debe estar en minúsculas y no superar 253 caracteres. El nombre admite de 1 a 63 caracteres ASCII válidos, incluidas mayúsculas. El valor puede estar vacío o tener hasta 63 caracteres. Los prefijos reservados siguen siendo válidos sintácticamente.

Igualdad y conjuntos en la misma cadena

Un selector basado en igualdad usa =, == o !=. Un selector basado en conjunto usa in o notin. Las comas entre condiciones significan AND; las alternativas de una misma clave van dentro de un solo in. Añadir igualdades restringe los resultados.

Cada recurso conserva su posición

El informe mantiene índice, ruta JSON y los campos de tipo, espacio de nombres y nombre cuando existen. Si metadata o labels falta o es null, se usa un mapa vacío. Los nombres repetidos no se fusionan y ninguna entrada desaparece por deduplicación.

Valores sin conversiones implícitas

Los selectores de etiquetas distinguen "01" de "1". Números, booleanos y null no se convierten en cadenas: producen un error. También se rechazan las claves JSON duplicadas para que un valor posterior no oculte uno anterior antes de comprobarlo.

Entradas admitidas y límites de la comprobación

Un subconjunto definido de sintaxis textual
La referencia es Kubernetes 1.35 / apimachinery v0.35.0 para igualdad, conjuntos y existencia. No se admiten comparaciones numéricas < o >, OR entre claves, comodines, expresiones regulares, field selectors ni reglas de afinidad de nodos.
JSON estricto y modo explícito
No se admiten comentarios ni comas finales. No se leen YAML, archivos, URL ni objetos estructurados matchLabels o matchExpressions. Los tipos List requieren un array items; los objetos normales se comprueban con su propio metadata.labels.
Un error invalida todo el lote
Máximos: 500.000 caracteres JSON, 8.192 de selector, 500 recursos, 64 condiciones y 256 etiquetas por recurso, contados en unidades UTF-16. El analizador también limita profundidad a 100, nodos a 50.000 y cada número a 1.000 caracteres. No se omiten objetos inválidos para producir resultados parciales.
El selector vacío depende del contexto
Aquí una cadena vacía coincide con todos los objetos válidos, incluido un mapa vacío. Un editor JSON vacío indica que falta entrada; usa {} para un mapa sin etiquetas. Los selectores vacíos de Service o los selectores estructurados null pueden tener otra semántica.
El informe no sustituye al manifiesto
Se exportan identidad, etiquetas y condiciones; se omiten los demás campos. No se corrigen etiquetas ni se comprueban disponibilidad, endpoints, rutas o propiedad de controladores. Obtén los recursos con kubectl para revisar sus etiquetas, pero verifica el funcionamiento real por separado.

Preguntas sobre el selector de etiquetas Kubernetes

¿Cómo consulto Pods por varias etiquetas?

Une los requisitos con comas, por ejemplo app=web,environment=production. Deben cumplirse ambos. Conserva el prefijo DNS si forma parte de la clave: app.kubernetes.io/name no es la misma etiqueta que name.

¿Se puede usar OR entre condiciones de etiquetas?

No entre claves diferentes con esta sintaxis. Para alternativas de una misma clave usa environment in (production,staging). Dos igualdades separadas por comas exigen los dos valores a la vez, lo que puede dejar el resultado vacío.

¿Puede una etiqueta tener clave sin valor?

Sí: {"maintenance":""} representa un valor vacío. maintenance exige que la clave exista, maintenance= exige un valor vacío presente y !maintenance exige ausencia. En sintaxis textual, maintenance in () contiene una cadena vacía; no es un conjunto sin elementos.

¿Cómo cuento recursos sin una etiqueta concreta?

Usa !key y consulta el total de coincidencias. Esto busca la ausencia de esa clave, no necesariamente recursos sin ninguna etiqueta. El recuento solo abarca los objetos pegados; para contar todo el clúster necesitas una lista completa obtenida por separado.

¿Por qué env!=prod acepta un objeto sin env?

!= y notin incluyen claves ausentes. Si necesitas que env exista y sea distinto de prod, escribe env,env!=prod. El detalle distingue la ausencia de clave de un valor presente que sea diferente.

¿Quedó alguna duda sobre el selector?

Comprueba las etiquetas que tienes

Aplica el selector de etiquetas Kubernetes al JSON actual y revisa las condiciones que fallan antes de cambiar la configuración de una carga de trabajo.