Skip to content

Commit 80c79ed

Browse files
authored
Merge pull request #22512 from ariscahyadi/id-local-app-cluster-list-image
ID localization for access-application-cluster list-image
2 parents 8b5dfed + 12d2ae6 commit 80c79ed

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
title: Membuat Daftar Semua Image Container yang Berjalan dalam Klaster
3+
content_type: task
4+
weight: 100
5+
---
6+
7+
<!-- overview -->
8+
9+
Laman ini menunjukkan cara menggunakan kubectl untuk membuat daftar semua _image_ Container
10+
untuk Pod yang berjalan dalam sebuah klaster.
11+
12+
13+
14+
## {{% heading "prerequisites" %}}
15+
16+
17+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
18+
19+
20+
21+
<!-- steps -->
22+
23+
Dalam latihan ini kamu akan menggunakan kubectl untuk mengambil semua Pod yang
24+
berjalan dalam sebuah klaster, dan mengubah format keluarannya untuk melihat daftar
25+
Container untuk masing-masing Pod.
26+
27+
## Membuat daftar semua _image_ Container pada semua Namespace
28+
29+
- Silakan ambil semua Pod dalam Namespace dengan menggunakan perintah `kubectl get pods --all-namespaces`
30+
- Silakan format keluarannya agar hanya menyertakan daftar nama _image_ dari Container
31+
dengan menggunakan perintah `-o jsonpath={..image}`. Perintah ini akan mem-_parsing field_
32+
`image` dari keluaran json yang dihasilkan.
33+
- Silakan lihat [referensi jsonpath](/docs/user-guide/jsonpath/)
34+
untuk informasi lebih lanjut tentang cara menggunakan `jsonpath`.
35+
- Silakan format keluaran dengan menggunakan peralatan standar: `tr`, `sort`, `uniq`
36+
- Gunakan `tr` untuk mengganti spasi dengan garis baru
37+
- Gunakan `sort` untuk menyortir hasil
38+
- Gunakan `uniq` untuk mengumpulkan jumlah _image_
39+
40+
```sh
41+
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
42+
tr -s '[[:space:]]' '\n' |\
43+
sort |\
44+
uniq -c
45+
```
46+
47+
Perintah di atas secara berulang akan mengembalikan semua _field_ bernama `image`
48+
dari semua poin yang dikembalikan.
49+
50+
Sebagai pilihan, dimungkinkan juga untuk menggunakan jalur (_path_) absolut ke _field image_
51+
di dalam Pod. Hal ini memastikan _field_ yang diambil benar
52+
bahkan ketika nama _field_ tersebut diulangi,
53+
misalnya banyak _field_ disebut dengan `name` dalam sebuah poin yang diberikan:
54+
55+
```sh
56+
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
57+
```
58+
59+
`Jsonpath` dapat diartikan sebagai berikut:
60+
61+
- `.items[*]`: untuk setiap nilai yang dihasilkan
62+
- `.spec`: untuk mendapatkan spesifikasi
63+
- `.containers[*]`: untuk setiap Container
64+
- `.image`: untuk mendapatkan _image_
65+
66+
{{< note >}}
67+
Pada saat mengambil sebuah Pod berdasarkan namanya, misalnya `kubectl get pod nginx`,
68+
bagian `.items[*]` dari jalur harus dihilangkan karena hanya akan menghasilkan sebuah Pod
69+
sebagai keluarannya, bukan daftar dari semua Pod.
70+
71+
{{< /note >}}
72+
73+
## Membuat daftar _image_ Container berdasarkan Pod
74+
75+
Format dapat dikontrol lebih lanjut dengan menggunakan operasi `range` untuk
76+
melakukan iterasi untuk setiap elemen secara individual.
77+
78+
```sh
79+
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\
80+
sort
81+
```
82+
83+
## Membuat daftar _image_ yang difilter berdasarkan label dari Pod
84+
85+
Untuk menargetkan hanya Pod yang cocok dengan label tertentu saja, gunakan tanda -l. Filter
86+
dibawah ini akan menghasilkan Pod dengan label yang cocok dengan `app=nginx`.
87+
88+
```sh
89+
kubectl get pods --all-namespaces -o=jsonpath="{..image}" -l app=nginx
90+
```
91+
92+
## Membuat daftar _image_ Container yang difilter berdasarkan Namespace Pod
93+
94+
Untuk hanya menargetkan Pod pada Namespace tertentu, gunakankan tanda Namespace. Filter
95+
dibawah ini hanya menyaring Pod pada Namespace `kube-system`.
96+
97+
```sh
98+
kubectl get pods --namespace kube-system -o jsonpath="{..image}"
99+
```
100+
101+
## Membuat daftar _image_ Container dengan menggunakan go-template sebagai alternatif dari jsonpath
102+
103+
Sebagai alternatif untuk `jsonpath`, kubectl mendukung penggunaan [go-template](https://golang.org/pkg/text/template/)
104+
untuk memformat keluaran seperti berikut:
105+
106+
107+
```sh
108+
kubectl get pods --all-namespaces -o go-template --template="{{range .items}}{{range .spec.containers}}{{.image}} {{end}}{{end}}"
109+
```
110+
111+
112+
113+
114+
115+
<!-- discussion -->
116+
117+
118+
119+
## {{% heading "whatsnext" %}}
120+
121+
122+
### Referensi
123+
124+
* Referensi panduan [Jsonpath](/docs/user-guide/jsonpath/).
125+
* Referensi panduan [Go template](https://golang.org/pkg/text/template/).
126+
127+
128+
129+

0 commit comments

Comments
 (0)