Selektor field memungkinkan kamu untuk memilih (select) resource Kubernetes 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
yang bernilai
Running
:
kubectl get pods --field-selector status.phase=Running
Catatan:Pada dasarnya, selektor field merupakan filter dari resource. Secara default, tidak ada selektor/filter apapun yang diterapkan. Artinya, semua resource dengan tipe apapun akan terpilih. Akibatnya, query dengan perintah
kubectl
di bawah ini akan memberikan hasil yang sama:kubectl get pods kubectl get pods --field-selector ""
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:
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"
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
:
kubectl get services --field-selector metadata.namespace!=default
Seperti halnya label 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
:
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
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
:
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
Apakah halaman ini berguna?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.