ID localization for access-application-cluster list-image
Addressing several comments. Addressing several comments.pull/22512/head
parent
332cba8bf3
commit
12d2ae6d9d
|
@ -0,0 +1,129 @@
|
||||||
|
---
|
||||||
|
title: Membuat Daftar Semua Image Container yang Berjalan dalam Klaster
|
||||||
|
content_type: task
|
||||||
|
weight: 100
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- overview -->
|
||||||
|
|
||||||
|
Laman ini menunjukkan cara menggunakan kubectl untuk membuat daftar semua _image_ Container
|
||||||
|
untuk Pod yang berjalan dalam sebuah klaster.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## {{% heading "prerequisites" %}}
|
||||||
|
|
||||||
|
|
||||||
|
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- steps -->
|
||||||
|
|
||||||
|
Dalam latihan ini kamu akan menggunakan kubectl untuk mengambil semua Pod yang
|
||||||
|
berjalan dalam sebuah klaster, dan mengubah format keluarannya untuk melihat daftar
|
||||||
|
Container untuk masing-masing Pod.
|
||||||
|
|
||||||
|
## Membuat daftar semua _image_ Container pada semua Namespace
|
||||||
|
|
||||||
|
- Silakan ambil semua Pod dalam Namespace dengan menggunakan perintah `kubectl get pods --all-namespaces`
|
||||||
|
- Silakan format keluarannya agar hanya menyertakan daftar nama _image_ dari Container
|
||||||
|
dengan menggunakan perintah `-o jsonpath={..image}`. Perintah ini akan mem-_parsing field_
|
||||||
|
`image` dari keluaran json yang dihasilkan.
|
||||||
|
- Silakan lihat [referensi jsonpath](/docs/user-guide/jsonpath/)
|
||||||
|
untuk informasi lebih lanjut tentang cara menggunakan `jsonpath`.
|
||||||
|
- Silakan format keluaran dengan menggunakan peralatan standar: `tr`, `sort`, `uniq`
|
||||||
|
- Gunakan `tr` untuk mengganti spasi dengan garis baru
|
||||||
|
- Gunakan `sort` untuk menyortir hasil
|
||||||
|
- Gunakan `uniq` untuk mengumpulkan jumlah _image_
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
|
||||||
|
tr -s '[[:space:]]' '\n' |\
|
||||||
|
sort |\
|
||||||
|
uniq -c
|
||||||
|
```
|
||||||
|
|
||||||
|
Perintah di atas secara berulang akan mengembalikan semua _field_ bernama `image`
|
||||||
|
dari semua poin yang dikembalikan.
|
||||||
|
|
||||||
|
Sebagai pilihan, dimungkinkan juga untuk menggunakan jalur (_path_) absolut ke _field image_
|
||||||
|
di dalam Pod. Hal ini memastikan _field_ yang diambil benar
|
||||||
|
bahkan ketika nama _field_ tersebut diulangi,
|
||||||
|
misalnya banyak _field_ disebut dengan `name` dalam sebuah poin yang diberikan:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
|
||||||
|
```
|
||||||
|
|
||||||
|
`Jsonpath` dapat diartikan sebagai berikut:
|
||||||
|
|
||||||
|
- `.items[*]`: untuk setiap nilai yang dihasilkan
|
||||||
|
- `.spec`: untuk mendapatkan spesifikasi
|
||||||
|
- `.containers[*]`: untuk setiap Container
|
||||||
|
- `.image`: untuk mendapatkan _image_
|
||||||
|
|
||||||
|
{{< note >}}
|
||||||
|
Pada saat mengambil sebuah Pod berdasarkan namanya, misalnya `kubectl get pod nginx`,
|
||||||
|
bagian `.items[*]` dari jalur harus dihilangkan karena hanya akan menghasilkan sebuah Pod
|
||||||
|
sebagai keluarannya, bukan daftar dari semua Pod.
|
||||||
|
|
||||||
|
{{< /note >}}
|
||||||
|
|
||||||
|
## Membuat daftar _image_ Container berdasarkan Pod
|
||||||
|
|
||||||
|
Format dapat dikontrol lebih lanjut dengan menggunakan operasi `range` untuk
|
||||||
|
melakukan iterasi untuk setiap elemen secara individual.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\
|
||||||
|
sort
|
||||||
|
```
|
||||||
|
|
||||||
|
## Membuat daftar _image_ yang difilter berdasarkan label dari Pod
|
||||||
|
|
||||||
|
Untuk menargetkan hanya Pod yang cocok dengan label tertentu saja, gunakan tanda -l. Filter
|
||||||
|
dibawah ini akan menghasilkan Pod dengan label yang cocok dengan `app=nginx`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --all-namespaces -o=jsonpath="{..image}" -l app=nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
## Membuat daftar _image_ Container yang difilter berdasarkan Namespace Pod
|
||||||
|
|
||||||
|
Untuk hanya menargetkan Pod pada Namespace tertentu, gunakankan tanda Namespace. Filter
|
||||||
|
dibawah ini hanya menyaring Pod pada Namespace `kube-system`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --namespace kube-system -o jsonpath="{..image}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Membuat daftar _image_ Container dengan menggunakan go-template sebagai alternatif dari jsonpath
|
||||||
|
|
||||||
|
Sebagai alternatif untuk `jsonpath`, kubectl mendukung penggunaan [go-template](https://golang.org/pkg/text/template/)
|
||||||
|
untuk memformat keluaran seperti berikut:
|
||||||
|
|
||||||
|
|
||||||
|
```sh
|
||||||
|
kubectl get pods --all-namespaces -o go-template --template="{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- discussion -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## {{% heading "whatsnext" %}}
|
||||||
|
|
||||||
|
|
||||||
|
### Referensi
|
||||||
|
|
||||||
|
* Referensi panduan [Jsonpath](/docs/user-guide/jsonpath/).
|
||||||
|
* Referensi panduan [Go template](https://golang.org/pkg/text/template/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue