Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Los selectores de campo te permiten seleccionar recursos de Kubernetes basados en el valor de uno o más campos del recurso. Aquí se presentan varios ejemplos de consultas de selectores de campo:
metadata.name=my-service
metadata.namespace!=default
status.phase=Pending
Este comando kubectl
selecciona todos los Pods para los cuales el valor del campo status.phase
es igual a Running
:
kubectl get pods --field-selector status.phase=Running
Nota: Los selectores de campo son esencialmente filtros de recursos. Por defecto, no se aplica ningún selector/filtro, lo que significa que todos los tipos de recursos son seleccionados. Esto hace que las siguientes consultas conkubectl
sean equivalentes:shell kubectl get pods kubectl get pods --field-selector ""
Los selectores de campos soportados varían según el tipo de recursos de Kubernetes. Todos los tipos de recursos permiten los campos metadata.name
y metadata.namespace
. El uso de un selector de campo no soportado provoca un error. Por ejemplo:
kubectl get ingress --field-selector foo.bar=baz
Error from server (BadRequest): Unable to find "ingresses" that match label selector "", field selector "foo.bar=baz": "foo.bar" is not a known field selector: only "metadata.name", "metadata.namespace"
Puedes usar los operadores =
, ==
, y !=
en los selectores de campo (=
y ==
significan lo mismo). Este comando de kubectl
, por ejemplo, selecciona todos los servicios de Kubernetes que no están en el espacio de nombres default
:
kubectl get services --field-selector metadata.namespace!=default
De la misma manera que con una etiqueta y otros selectores, los selectores de campo pueden anidarse como una lista de elementos separados por coma. Este comando de kubectl
selecciona todos los Pods para los que el campo status.phase
no es igual a Running
y el campo spec.restartPolicy
es igual a Always
:
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
Puedes usar los selectores de campo entre múltiples tipos de recursos. Este comando de kubectl
selecciona todos los Statefulsets y Services que no están en el espacio de nombres default
:
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default