Add pt-br/docs/concepts/overview/working-with-objects/field-selectors.md

pull/30863/head
lcbcfoo 2021-12-11 14:47:37 -03:00
parent 0a2da8cb46
commit e56ef1180f
1 changed files with 56 additions and 0 deletions
content/pt-br/docs/concepts/overview/working-with-objects

View File

@ -0,0 +1,56 @@
---
title: Seletores de Campos
weight: 60
---
_Seletores de Campos_ permitem que você [selecione recursos do Kubernetes](/docs/concepts/overview/working-with-objects/kubernetes-objects) baseado no valor de um ou mais resource fields. Seguem alguns exemplos de buscas utilizando seletores de campos:
* `metadata.name=my-service`
* `metadata.namespace!=default`
* `status.phase=Pending`
O comando `kubectl`, mostrado a seguir, seleciona todos os Pods nos quais o valor do campo [`status.phase`](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) é `Running`:
```shell
kubectl get pods --field-selector status.phase=Running
```
{{< note >}}
Seletores de campos são essencialmente *filtros* de recursos. Por padrão, nenhum selector/filtro é aplicado, de forma que todos os recursos do tipo especificado são selecionados. Isso faz com que as seguintes pesquisas utilizando `kubectl` sejam equivalentes: `kubectl get pods` e `kubectl get pods --field-selector ""`
{{< /note >}}
## Campos suportados
Os campos de seleção suportados variam dependendo do tipo de recurso Kubernetes. Todos os tipos de recursos suportam os campos `metadata.name` e `metadata.namespace`. Utilizar campos não suportados produz um erro. Como exemplo:
```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"
```
## Operadores suportados
Você pode utilizar os operadores `=`, `==` e `!=` com seletores de campos (`=` e `==` significam a mesma coisa). Por exemplo, o comando `kubectl` a seguir seleciona todos os Serviços Kubernetes que não estão no namespace `default`:
```shell
kubectl get services --all-namespaces --field-selector metadata.namespace!=default
```
## Selecionadores em cadeia
Assim como [label](/docs/concepts/overview/working-with-objects/labels) e outros selecionadores, selecionadores de campos podem ser utilizados em cadeia através de uma lista separada por vírgula. O comando `kubectl` a seguir seleciona todos os Pods nos quais `status.phase` não é igual a `Running` e `spec.restartPolicy` é igual a `Always`
```shell
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
```
## Múltiplos tipos de recursos
Você pode utilizar selecionadores de campos através de múltiplos tipos de recursos. O comando `kubectl` a seguir seleciona todos Statefulsets e Services que não estão presentes no namespace `default`.
```shell
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
```