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