Skip to content

Commit 430827f

Browse files
authored
Merge pull request #20739 from adityaalifn/configure-access-multiple-clusters-id
Add ID translation for configure access multiple clusters page
2 parents 2139b50 + 61f0741 commit 430827f

File tree

1 file changed

+378
-0
lines changed

1 file changed

+378
-0
lines changed
Lines changed: 378 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,378 @@
1+
---
2+
title: Mengkonfigurasi Akses ke Banyak Klaster
3+
content_template: templates/task
4+
weight: 30
5+
card:
6+
name: tasks
7+
weight: 40
8+
---
9+
10+
11+
{{% capture overview %}}
12+
13+
Halaman ini menunjukkan bagaimana mengkonfigurasi akses ke banyak klaster dengan menggunakan
14+
berkas (_file_) konfigurasi. Setelah semua klaster, pengguna, dan konteks didefinisikan di
15+
satu atau lebih berkas konfigurasi, kamu akan dengan cepat berpindah antar klaster dengan menggunakan
16+
perintah `kubectl config use-context`.
17+
18+
{{< note >}}
19+
Berkas yang digunakan untuk mengkonfigurasi akses ke sebuah klaster terkadang disebut
20+
berkas *kubeconfig*. Ini adalah cara umum untuk merujuk ke berkas konfigurasi.
21+
Itu tidak berarti bahwa selalu ada berkas bernama `kubeconfig`.
22+
{{< /note >}}
23+
24+
{{% /capture %}}
25+
26+
{{% capture prerequisites %}}
27+
28+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
29+
30+
{{% /capture %}}
31+
32+
{{% capture steps %}}
33+
34+
## Mendefinisikan klaster, pengguna, dan konteks
35+
36+
Misalkan kamu memiliki dua klaster, satu untuk pekerjaan pengembangan dan satu untuk pekerjaan eksperimen (_scratch_).
37+
Di klaster `pengembangan`, pengembang _frontend_ kamu bekerja di sebuah Namespace bernama `frontend`,
38+
dan pengembang penyimpanan kamu bekerja di sebuah Namespace bernama `storage`. Di klaster `scratch` kamu,
39+
pengembang bekerja di Namespace `default`, atau mereka membuat Namespace tambahan sesuai keinginan mereka.
40+
Akses ke klaster `development` membutuhkan autentikasi dengan sertifikat.
41+
Akses ke klaster `scratch` membutuhkan autentikasi dengan nama pengguna dan kata sandi.
42+
43+
Buat sebuah direktori bernama `config-exercise`. Di direktori `config-exercise` kamu,
44+
buat sebuah berkas bernama `config-demo` dengan konten ini:
45+
46+
```shell
47+
apiVersion: v1
48+
kind: Config
49+
preferences: {}
50+
51+
clusters:
52+
- cluster:
53+
name: development
54+
- cluster:
55+
name: scratch
56+
57+
users:
58+
- name: developer
59+
- name: experimenter
60+
61+
contexts:
62+
- context:
63+
name: dev-frontend
64+
- context:
65+
name: dev-storage
66+
- context:
67+
name: exp-scratch
68+
```
69+
70+
Berkas konfigurasi di atas mendeskripsikan semua klaster, pengguna, dan konteks.
71+
Berkas `config-demo` kamu memiliki kerangka kerja untuk mendeskripsikan dua klaster, dua pengguna, dan tiga konteks.
72+
73+
Buka direktori `config-exercise` kamu. Masukkan perintah-perintah berikut untuk menambahkan detail ke
74+
berkas konfigurasi kamu:
75+
76+
```shell
77+
kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file
78+
kubectl config --kubeconfig=config-demo set-cluster scratch --server=https://5.6.7.8 --insecure-skip-tls-verify
79+
```
80+
81+
Tambahkan detail pengguna ke berkas konfigurasi kamu:
82+
83+
```shell
84+
kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile
85+
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
86+
```
87+
88+
{{< note >}}
89+
- Untuk menghapus sebuah pengguna, kamu dapat menjalankan perintah `kubectl --kubeconfig=config-demo config unset users.<name>`
90+
- Untuk menghapus sebuah klaster, kamu dapat menjalankan perintah `kubectl --kubeconfig=config-demo config unset clusters.<name>`
91+
- Untuk menghapus sebuah konteks, kamu dapat menjalankan perintah `kubectl --kubeconfig=config-demo config unset contexts.<name>`
92+
{{< /note >}}
93+
94+
Tambahkan detail konteks ke berkas konfigurasi kamu:
95+
96+
```shell
97+
kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
98+
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
99+
kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter
100+
```
101+
102+
Buka berkas `config-demo` kamu untuk melihat detail-detail yang telah ditambah. Sebagai alternatif dari membuka
103+
berkas `config-demo`, kamu bisa menggunakan perintah `config view`.
104+
105+
```shell
106+
kubectl config --kubeconfig=config-demo view
107+
```
108+
109+
Keluaran akan menampilkan dua klaster, dua pengguna, dan tiga konteks:
110+
111+
```shell
112+
apiVersion: v1
113+
clusters:
114+
- cluster:
115+
certificate-authority: fake-ca-file
116+
server: https://1.2.3.4
117+
name: development
118+
- cluster:
119+
insecure-skip-tls-verify: true
120+
server: https://5.6.7.8
121+
name: scratch
122+
contexts:
123+
- context:
124+
cluster: development
125+
namespace: frontend
126+
user: developer
127+
name: dev-frontend
128+
- context:
129+
cluster: development
130+
namespace: storage
131+
user: developer
132+
name: dev-storage
133+
- context:
134+
cluster: scratch
135+
namespace: default
136+
user: experimenter
137+
name: exp-scratch
138+
current-context: ""
139+
kind: Config
140+
preferences: {}
141+
users:
142+
- name: developer
143+
user:
144+
client-certificate: fake-cert-file
145+
client-key: fake-key-file
146+
- name: experimenter
147+
user:
148+
password: some-password
149+
username: exp
150+
```
151+
152+
`fake-ca-file`, `fake-cert-file`, dan `fake-key-file` di atas adalah _placeholder_
153+
untuk nama jalur (_pathname_) dari berkas-berkas sertifikat. Kamu harus menggantinya menjadi nama jalur
154+
sebenarnya dari berkas-berkas sertifikat di dalam lingkungan (_environment_) kamu.
155+
156+
Terkadang kamu mungkin ingin menggunakan data yang disandikan Base64 yang langsung dimasukkan di berkas konfigurasi
157+
daripada menggunakan berkas sertifikat yang terpisah. Dalam kasus ini, kamu perlu menambahkan akhiran `-data` ke kunci. Contoh, `certificate-authority-data`, `client-certificate-data`, dan `client-key-data`.
158+
159+
Setiap konteks memiliki tiga bagian: klaster, pengguna, dan Namespace.
160+
Sebagai contoh, konteks `dev-frontend` menyatakan, "Gunakan kredensial dari pengguna `developer`
161+
untuk mengakses Namespace `frontend` di klaster `development`.
162+
163+
Mengatur konteks yang digunakan:
164+
165+
```shell
166+
kubectl config --kubeconfig=config-demo use-context dev-frontend
167+
```
168+
169+
Sekarang kapanpun kamu memasukkan perintah `kubectl`, aksi tersebut akan diterapkan untuk klaster,
170+
dan Namespace yang terdaftar pada konteks `dev-frontend`. Dan perintah tersebut akan menggunakan
171+
kredensial dari pengguna yang terdaftar pada konteks `dev-frontend`.
172+
173+
Untuk melihat hanya informasi konfigurasi yang berkaitan dengan konteks saat ini,
174+
gunakan `--minify` flag.
175+
176+
```shell
177+
kubectl config --kubeconfig=config-demo view --minify
178+
```
179+
180+
Output menunjukkan informasi konfigurasi yang berkaitan dengan konteks `dev-frontend`:
181+
182+
```shell
183+
apiVersion: v1
184+
clusters:
185+
- cluster:
186+
certificate-authority: fake-ca-file
187+
server: https://1.2.3.4
188+
name: development
189+
contexts:
190+
- context:
191+
cluster: development
192+
namespace: frontend
193+
user: developer
194+
name: dev-frontend
195+
current-context: dev-frontend
196+
kind: Config
197+
preferences: {}
198+
users:
199+
- name: developer
200+
user:
201+
client-certificate: fake-cert-file
202+
client-key: fake-key-file
203+
```
204+
205+
Sekarang apabila kamu ingin bekerja sebentar di klaster eksperimen.
206+
207+
Ubah konteks saat ini menjadi `exp-scratch`:
208+
209+
```shell
210+
kubectl config --kubeconfig=config-demo use-context exp-scratch
211+
```
212+
213+
Sekarang, setiap perintah `kubectl` yang diberikan akan berlaku untuk Namespace `default`
214+
dari klaster `scratch`. Dan perintah akan menggunakan kredensial dari pengguna yang
215+
terdaftar di konteks `exp-scratch`.
216+
217+
Untuk melihat konfigurasi yang berkaitan dengan konteks saat ini, `exp-scratch`.
218+
219+
```shell
220+
kubectl config --kubeconfig=config-demo view --minify
221+
```
222+
223+
Akhirnya, misalkan kamu ingin bekerja sebentar di Namespace `storage` pada
224+
klaster `development`.
225+
226+
Ubah konteks saat ini menjadi `dev-storage`:
227+
228+
```shell
229+
kubectl config --kubeconfig=config-demo use-context dev-storage
230+
```
231+
232+
Untuk melihat konfigurasi yang berkaitan dengan konteks baru saat ini, `dev-storage`.
233+
234+
```shell
235+
kubectl config --kubeconfig=config-demo view --minify
236+
```
237+
238+
## Membuat sebuah berkas konfigurasi kedua
239+
240+
Di direktori `config-exercise` kamu, buat sebuah berkas bernama `config-demo-2` dengan konten ini:
241+
242+
```shell
243+
apiVersion: v1
244+
kind: Config
245+
preferences: {}
246+
247+
contexts:
248+
- context:
249+
cluster: development
250+
namespace: ramp
251+
user: developer
252+
name: dev-ramp-up
253+
```
254+
255+
Berkas konfigurasi di atas mendefinisikan sebuah konteks baru bernama `dev-ramp-up`.
256+
257+
## Mengatur variabel lingkungan KUBECONFIG
258+
259+
Lihat apakah kamu sudah memiliki sebuah variabel lingkungan bernama `KUBECONFIG`.
260+
Jika iya, simpan nilai saat ini dari variabel lingkungan `KUBECONFIG` kamu, sehingga kamu dapat mengembalikannya nanti.
261+
Sebagai contohL
262+
263+
### Linux
264+
```shell
265+
export KUBECONFIG_SAVED=$KUBECONFIG
266+
```
267+
### Windows PowerShell
268+
```shell
269+
$Env:KUBECONFIG_SAVED=$ENV:KUBECONFIG
270+
```
271+
Variabel lingkungan `KUBECONFIG` adalah sebuah daftar dari jalur-jalur (beragam _path_) menuju berkas konfigurasi.
272+
Daftar ini dibatasi oleh tanda titik dua untuk Linux dan Mac, dan tanda titik koma untuk Windows. Jika kamu
273+
memiliki sebuah variabel lingkungan `KUBECONFIG`, biasakan diri kamu dengan berkas-berkas konfigurasi
274+
yang ada pada daftar.
275+
276+
Tambahkan sementara dua jalur ke variabel lingkungan `KUBECONFIG` kamu. Sebagai contoh:
277+
278+
### Linux
279+
```shell
280+
export KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2
281+
```
282+
### Windows PowerShell
283+
```shell
284+
$Env:KUBECONFIG=("config-demo;config-demo-2")
285+
```
286+
287+
Di direktori `config-exercise` kamu, masukan perintah ini:
288+
289+
```shell
290+
kubectl config view
291+
```
292+
293+
Keluaran menunjukkan informasi gabungan dari semua berkas yang terdaftar dalam variabel lingkungan `KUBECONFIG` kamu.
294+
Secara khusus, perhatikan bahwa informasi gabungan tersebut memiliki konteks `dev-ramp-up`, konteks dari berkas
295+
`config-demo-2`, dan tiga konteks dari berkas `config-demo`:
296+
297+
```shell
298+
contexts:
299+
- context:
300+
cluster: development
301+
namespace: frontend
302+
user: developer
303+
name: dev-frontend
304+
- context:
305+
cluster: development
306+
namespace: ramp
307+
user: developer
308+
name: dev-ramp-up
309+
- context:
310+
cluster: development
311+
namespace: storage
312+
user: developer
313+
name: dev-storage
314+
- context:
315+
cluster: scratch
316+
namespace: default
317+
user: experimenter
318+
name: exp-scratch
319+
```
320+
321+
Untuk informasi lebih tentang bagaimana berkas Kubeconfig tergabung, lihat
322+
[Mengatur Akses Cluster Menggunakan Berkas Kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
323+
324+
## Jelajahi direktori $HOME/.kube
325+
326+
Jika kamu sudah memiliki sebuah klaster, dan kamu bisa menggunakan `kubectl` untuk berinteraksi dengan
327+
klaster kamu, kemudian kamu mungkin memiliki sebuah berkas bernama `config` di
328+
direktori `$HOME/.kube`.
329+
330+
Buka `$HOME/.kube`, dan lihat berkas-berkas apa saja yang ada. Biasanya ada berkas bernama
331+
`config`. Mungkin juga ada berkas-berkas konfigurasi lain di direktori ini.
332+
Biasakan diri anda dengan konten-konten yang ada di berkas-berkas tersebut.
333+
334+
## Tambahkan $HOME/.kube/config ke variabel lingkungan KUBECONFIG kamu
335+
336+
Jika kamu memiliki sebuah berkas `$HOME/.kube/config`, dan belum terdaftar dalam variabel lingungan
337+
`KUBECONFIG` kamu, tambahkan berkas tersebut ke variabel lingkungan `KUBECONFIG` kamu sekarang.
338+
Sebagai contoh:
339+
340+
### Linux
341+
```shell
342+
export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config
343+
```
344+
### Windows Powershell
345+
```shell
346+
$Env:KUBECONFIG=($Env:KUBECONFIG;$HOME/.kube/config)
347+
```
348+
349+
Lihat gabungan informasi konfigurasi dari semua berkas yang sekarang tergabung
350+
dalam variabel lingkungan `KUBECONFIG` kamu. Di direktori `config-exercise` kamu, masukkan perintah:
351+
352+
```shell
353+
kubectl config view
354+
```
355+
356+
## Membersihkan
357+
358+
Kembalikan variabel lingkungan `KUBECONFIG` kamu ke nilai asilnya. Sebagai contoh:<br>
359+
360+
### Linux
361+
```shell
362+
export KUBECONFIG=$KUBECONFIG_SAVED
363+
```
364+
### Windows PowerShell
365+
```shell
366+
$Env:KUBECONFIG=$ENV:KUBECONFIG_SAVED
367+
```
368+
369+
{{% /capture %}}
370+
371+
{{% capture whatsnext %}}
372+
373+
* [Mengatur Akses Cluster Menggunakan Berkas Kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
374+
* [kubectl config](/docs/reference/generated/kubectl/kubectl-commands#config)
375+
376+
{{% /capture %}}
377+
378+

0 commit comments

Comments
 (0)