# Selektory pól

LLMS index: [llms.txt](/llms.txt)

---

Selektory pól (_Field selectors_) pozwalają na wybór <a class='glossary-tooltip' title='An entity in the Kubernetes system, representing part of the state of your cluster.' data-bs-toggle='tooltip' data-bs-placement='top' href='/pl/docs/concepts/overview/working-with-objects/#kubernetes-objects' target='_blank' aria-label='obiektów'>obiektów</a>
Kubernetesa na podstawie wartości jednego lub kilku pól zasobów. Oto kilka przykładów zapytań z użyciem selektora pól:

* `metadata.name=my-service`
* `metadata.namespace!=default`
* `status.phase=Pending`

Polecenie `kubectl` wybiera wszystkie Pody, dla których wartość pola [`status.phase`](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) to `Running`:

```shell
kubectl get pods --field-selector status.phase=Running
```


<div class="alert alert-info" role="note"><h4 class="alert-heading">Informacja:</h4>Selektory pól to zasadniczo <em>filtry</em> zasobów. Domyślnie nie stosuje się żadnych selektorów/filtrów, co oznacza, że wszystkie zasoby określonego typu są wybierane. Dzięki temu zapytania <code>kubectl</code> <code>kubectl get pods</code> i <code>kubectl get pods --field-selector &quot;&quot;</code> są równoważne.</div>


## Obsługiwane pola {#supported-fields}

Obsługiwane selektory pól różnią się w zależności od typu zasobu Kubernetesa. Wszystkie typy zasobów obsługują pola `metadata.name` oraz `metadata.namespace`. Użycie nieobsługiwanych selektorów pól skutkuje błędem. Na przykład:

```shell
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"
```

### Lista obsługiwanych pól {#list-of-supported-fields}

| Rodzaj                    | Pola                                                                                                                                                                                                                                                            |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pod                       | `spec.nodeName`<br>`spec.restartPolicy`<br>`spec.schedulerName`<br>`spec.serviceAccountName`<br>`spec.hostNetwork`<br>`status.phase`<br>`status.podIP`<br>`status.podIPs`<br>`status.nominatedNodeName`                                                                            |
| Event                 | `involvedObject.kind`<br>`involvedObject.namespace`<br>`involvedObject.name`<br>`involvedObject.uid`<br>`involvedObject.apiVersion`<br>`involvedObject.resourceVersion`<br>`involvedObject.fieldPath`<br>`reason`<br>`reportingComponent`<br>`source`<br>`type` |
| Secret                    | `type`                                                                                                                                                                                                                                                          |
| Service                   | `spec.clusterIP`<br>`spec.type`                                                                                                                                                                                                                                 |
| Namespace           | `status.phase`                                                                                                                                                                                                                                                   |
| ReplicaSet                | `status.replicas`                                                                                                                                                                                                                                               |
| ReplicationController     | `status.replicas`                                                                                                                                                                                                                                               |
| Job                  | `status.successful`                                                                                                                                                                                                                                             |
| Node                     | `spec.unschedulable`                                                                                                                                                                                                                                            |
| CertificateSigningRequest | `spec.signerName`                                                                                                                                                                                                                                               |

### Pola zasobów niestandardowych {#custom-resources-fields}

Wszystkie niestandardowe typy zasobów obsługują pola `metadata.name` oraz `metadata.namespace`.

Dodatkowo, pole `spec.versions[*].selectableFields` w <a class='glossary-tooltip' title='Custom code that defines a resource to add to your Kubernetes API server without building a complete custom server.' data-bs-toggle='tooltip' data-bs-placement='top' href='/pl/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/' target='_blank' aria-label='CustomResourceDefinition'>CustomResourceDefinition</a> określa,
które inne pola w zasobie niestandardowym mogą być używane w selektorach pól. Zobacz
[selectable fields for custom resources](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#crd-selectable-fields) aby uzyskać więcej informacji o tym, jak używać selektorów pól z CustomResourceDefinitions.

## Obsługiwane operatory {#supported-operators}

Możesz używać operatorów `=`, `==` i `!=` z selektorami pól (`=` and `==` oznaczają to samo). Na przykład ta komenda `kubectl` wybiera wszystkie usługi Kubernetesa, które nie znajdują się w przestrzeni nazw `default`:

```shell
kubectl get services  --all-namespaces --field-selector metadata.namespace!=default
```

<div class="alert alert-info" role="note"><h4 class="alert-heading">Informacja:</h4>Operatory dla zbiorów (<a href="/pl/docs/concepts/overview/working-with-objects/labels/#set-based-requirement">Set-based operators</a>
) (<code>in</code>, <code>notin</code>, <code>exists</code>) nie są obsługiwane dla selektorów pól.</div>


## Złożone selektory {#chained-selectors}

Podobnie jak [etykieta](/docs/concepts/overview/working-with-objects/labels) i inne selektory, selektory pól mogą być łączone w postaci listy rozdzielanej przecinkami. To polecenie `kubectl` wybiera wszystkie Pody, dla których `status.phase` nie jest równe `Running`, a pole `spec.restartPolicy` jest równe `Always`:

```shell
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
```

## Wiele typów zasobów {#multiple-resource-types}

Możesz używać selektorów pól w różnych typach zasobów. To polecenie `kubectl` wybiera wszystkie obiekty typu Statefulset i Service, które nie znajdują się w przestrzeni nazw `default`:

```shell
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
```
