# Selektor Field

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

---

Selektor *field* memungkinkan kamu untuk [memilih (*select*) *resource* Kubernetes](/id/docs/concepts/overview/working-with-objects/kubernetes-objects) berdasarkan
nilai dari satu atau banyak *field resource*. Di bawah ini merupakan contoh dari beberapa *query* selektor *field*:

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

Perintah `kubectl` di bawah ini memilih semua Pod dengan *field* [`status.phase`](/id/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) yang bernilai
`Running`:

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


<div class="alert alert-info" role="note"><h4 class="alert-heading">Catatan:</h4><p>Pada dasarnya, selektor <em>field</em> merupakan filter dari <em>resource</em>. Secara <em>default</em>, tidak ada selektor/filter apapun yang diterapkan. Artinya,
semua <em>resource</em> dengan tipe apapun akan terpilih. Akibatnya, <em>query</em> dengan perintah <code>kubectl</code> di bawah ini akan memberikan hasil yang sama:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">kubectl get pods
</span></span><span class="line"><span class="cl">kubectl get pods --field-selector <span class="s2">&#34;&#34;</span>
</span></span></code></pre></div></div>


## *Field* yang didukung

Selektor-selektor *field* yang didukung oleh Kubernetes bervariasi tergantung dari tipe *resource*. Semua tipe *resource* mendukung *field*
`metadata.name` dan `metadata.namespace`. Jika kamu menggunakan selektor *field* yang tidak didukung, maka akan terjadi error. Contohnya:

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

## Operator yang didukung

Kamu dapat menggunakan operator `=`, `==`, dan `!=` pada selektor *field* (`=` dan `==` punya arti yang sama). Sebagai contoh, perintah `kubectl` ini
memilih semua Kubernetes Service yang tidak terdapat pada *namespace* `default`:

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

## Selektor berantai

Seperti halnya [label](/id/docs/concepts/overview/working-with-objects/labels) dan selektor-selektor lainnya, kamu dapat membuat selektor *field* berantai
(*chained*) dengan *list* yang dipisahkan oleh koma. Perintah `kubectl` di bawah ini memilih semua Pod dengan `status.phase` tidak sama dengan
`Running` dan *field* `spec.restartPolicy` sama dengan `Always`:

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

## *Resource* dengan beberapa tipe

Kamu dapat menggunakan selektor-selektor *field* dengan beberapa tipe *resource* sekaligus. Perintah `kubectl` di bawah ini memilih semua Statefulset
dan Service yang tidak terdapat pada *namespace* `default`:

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