Skip to content

Commit 8f38676

Browse files
committed
[pl] docs/concepts/overview/working-with-objects/field-selectors.md
1 parent 33cdc4b commit 8f38676

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: Selektory pól
3+
content_type: concept
4+
weight: 70
5+
---
6+
7+
Selektory pól (_Field selectors_) pozwalają na wybór {{< glossary_tooltip text="obiektów" term_id="object" >}}
8+
Kubernetesa na podstawie wartości jednego lub kilku pól zasobów. Oto kilka przykładów zapytań z użyciem selektora pól:
9+
10+
* `metadata.name=my-service`
11+
* `metadata.namespace!=default`
12+
* `status.phase=Pending`
13+
14+
Polecenie `kubectl` wybiera wszystkie Pody, dla których wartość pola [`status.phase`](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) to `Running`:
15+
16+
```shell
17+
kubectl get pods --field-selector status.phase=Running
18+
```
19+
20+
{{< note >}}
21+
Selektory pól to zasadniczo *filtry* 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 `kubectl` `kubectl get pods` i `kubectl get pods --field-selector ""` są równoważne.
22+
{{< /note >}}
23+
24+
## Obsługiwane pola {#supported-fields}
25+
26+
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:
27+
28+
```shell
29+
kubectl get ingress --field-selector foo.bar=baz
30+
```
31+
```
32+
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"
33+
```
34+
35+
### Lista obsługiwanych pól {#list-of-supported-fields}
36+
37+
| Rodzaj | Pola |
38+
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39+
| Pod | `spec.nodeName`<br>`spec.restartPolicy`<br>`spec.schedulerName`<br>`spec.serviceAccountName`<br>`spec.hostNetwork`<br>`status.phase`<br>`status.podIP`<br>`status.nominatedNodeName` |
40+
| 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` |
41+
| Secret | `type` |
42+
| Namespace | `status.phase` |
43+
| ReplicaSet | `status.replicas` |
44+
| ReplicationController | `status.replicas` |
45+
| Job | `status.successful` |
46+
| Node | `spec.unschedulable` |
47+
| CertificateSigningRequest | `spec.signerName` |
48+
49+
### Pola zasobów niestandardowych {#custom-resources-fields}
50+
51+
Wszystkie niestandardowe typy zasobów obsługują pola `metadata.name` oraz `metadata.namespace`.
52+
53+
Dodatkowo, pole `spec.versions[*].selectableFields` w {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}} określa,
54+
które inne pola w zasobie niestandardowym mogą być używane w selektorach pól. Zobacz
55+
[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.
56+
57+
## Obsługiwane operatory {#supported-operators}
58+
59+
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`:
60+
61+
```shell
62+
kubectl get services --all-namespaces --field-selector metadata.namespace!=default
63+
```
64+
{{< note >}}
65+
Operatory dla zbiorów ([Set-based operators](/docs/concepts/overview/working-with-objects/labels/#set-based-requirement)
66+
) (`in`, `notin`, `exists`) nie są obsługiwane dla selektorów pól.
67+
{{< /note >}}
68+
69+
## Złożone selektory {#chained-selectors}
70+
71+
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`:
72+
73+
```shell
74+
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
75+
```
76+
77+
## Wiele typów zasobów {#multiple-resource-types}
78+
79+
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`:
80+
81+
```shell
82+
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
83+
```

0 commit comments

Comments
 (0)