From e56ef1180fdbd741e836af891a87792b2a22e210 Mon Sep 17 00:00:00 2001 From: lcbcfoo Date: Sat, 11 Dec 2021 14:47:37 -0300 Subject: [PATCH] Add pt-br/docs/concepts/overview/working-with-objects/field-selectors.md --- .../working-with-objects/field-selectors.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 content/pt-br/docs/concepts/overview/working-with-objects/field-selectors.md diff --git a/content/pt-br/docs/concepts/overview/working-with-objects/field-selectors.md b/content/pt-br/docs/concepts/overview/working-with-objects/field-selectors.md new file mode 100644 index 0000000000..c763b3ef1c --- /dev/null +++ b/content/pt-br/docs/concepts/overview/working-with-objects/field-selectors.md @@ -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 +```