From 7c87be58f0915da207c29cc3b60e7cf4212601ef Mon Sep 17 00:00:00 2001 From: Gede Wahyu Adi Pramana Date: Sun, 27 Oct 2019 20:11:24 +0700 Subject: [PATCH] Translating Organize Cluster Access to ID Localization (#17035) * Translating "Organizing Cluster Access Using kubeconfig Files" to ID Localization * Apply suggestions from code review Co-Authored-By: Giri Kuncoro --- .../organize-cluster-access-kubeconfig.md | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 content/id/docs/concepts/configuration/organize-cluster-access-kubeconfig.md diff --git a/content/id/docs/concepts/configuration/organize-cluster-access-kubeconfig.md b/content/id/docs/concepts/configuration/organize-cluster-access-kubeconfig.md new file mode 100644 index 0000000000..ab20d640d6 --- /dev/null +++ b/content/id/docs/concepts/configuration/organize-cluster-access-kubeconfig.md @@ -0,0 +1,165 @@ +--- +title: Mengatur Akses Kluster Menggunakan Berkas kubeconfig +content_template: templates/concept +weight: 60 +--- + +{{% capture overview %}} + +Gunakan berkas kubeconfig untuk mengatur informasi mengenai kluster, pengguna, +_namespace_, dan mekanisme autentikasi. Perintah `kubectl` menggunakan berkas +kubeconfig untuk mencari informasi yang dibutuhkan untuk memilih kluster dan +berkomunikasi dengan API server dari suatu kluster. + +{{< note >}} +Sebuah berkas yang digunakan untuk mengatur akses pada kluster disebut dengan +berkas kubeconfig. Ini cara yang umum digunakan untuk mereferensikan berkas +konfigurasi. Ini tidak berarti ada berkas dengan nama `kubeconfig`. +{{< /note >}} + +Secara _default_, `kubectl` mencari berkas dengan nama `config` pada direktori +`$HOME/.kube`. Kamu bisa mengatur lokasi berkas kubeconfig dengan mengatur +nilai `KUBECONFIG` pada variabel _environment_ atau dengan mengatur menggunakan +tanda [`--kubeconfig`](/docs/reference/generated/kubectl/kubectl/). + +Instruksi langkah demi langkah untuk membuat dan menentukan berkas kubeconfig, +bisa mengacu pada [Mengatur Akses Pada Beberapa Kluster] +(/docs/tasks/access-application-cluster/configure-access-multiple-clusters). + +{{% /capture %}} + + +{{% capture body %}} + +## Mendukung beberapa kluster, pengguna, dan mekanisme autentikasi + +Misalkan kamu memiliki beberapa kluster, pengguna serta komponen dapat melakukan +autentikasi dengan berbagai cara. Sebagai contoh: + +- Kubelet yang berjalan dapat melakukan autentikasi dengan menggunakan sertifikat +- Pengguna bisa melakukan autentikasi dengan menggunakan token +- Administrator bisa memiliki beberapa sertifikat yang diberikan kepada pengguna +individu. + +Dengan berkas kubeconfig, kamu bisa mengatur kluster, pengguna, dan _namespace_. +Kamu juga bisa menentukan konteks untuk mempercepat dan mempermudah perpindahan +antara kluster dan _namespace_. + +## Konteks + +Sebuah elemen konteks pada berkas kubeconfig digunakan untuk mengelompokkan +parameter akses dengan nama yang mudah. Setiap konteks akan memiliki 3 parameter: +kluster, pengguna, dan _namespace_. Secara _default_, perintah `kubectl` menggunakan +parameter dari konteks yang aktif untuk berkomunikasi dengan kluster. + +Untuk memilih konteks yang aktif, bisa menggunakan perintah berikut: +``` +kubectl config use-context +``` + +## Variabel _environment_ KUBECONFIG + +Variabel _environment_ `KUBECONFIG` berisikan beberapa berkas kubeconfig. Untuk +Linux dan Mac, beberapa berkas tersebut dipisahkan dengan tanda titik dua (:). +Untuk Windows, dipisahkan dengan menggunakan tanda titik koma (;). Variabel +_environment_ `KUBECONFIG` tidak diwajibkan untuk ada. Jika variabel _environment_ +`KUBECONFIG` tidak ada, maka `kubectl` akan menggunakan berkas kubeconfig pada +`$HOME/.kube/config`. + +Jika variabel _environment_ `KUBECONFIG` ternyata ada, maka `kubectl` akan menggunakan +konfigurasi yang merupakan hasil gabungan dari berkas-berkas yang terdapat pada +variabel _environment_ `KUBECONFIG`. + +## Menggabungkan berkas-berkas kubeconfig + +Untuk melihat konfigurasimu, gunakan perintah berikut ini: + +```shell +kubectl config view +``` + +Seperti yang dijelaskan sebelumnya, hasil perintah diatas bisa berasal dari sebuah +berkas kubeconfig, atau bisa juga merupakan hasil gabungan dari beberapa berkas kubeconfig. + +Berikut adalah aturan yang digunakan `kubectl` ketika menggabungkan beberapa berkas +kubeconfig: + +1. Jika menggunakan tanda `--kubeconfig`, maka akan menggunakan berkas yang ditentukan. + Tidak digabungkan. Hanya 1 tanda `--kubeconfig` yang diperbolehkan. + + Sebaliknya, jika variabel _environment_ `KUBECONFIG` digunakan, maka akan menggunakan + ini sebagai berkas-berkas yang akan digabungkan. Penggabungan berkas-berkas yang terdapat + pada variabel _environment_ `KUBECONFIG` akan mengikuti aturan sebagai berikut: + + * Mengabaikan berkas tanpa nama. + * Mengeluarkan pesan kesalahan untuk berkas dengan isi yang tidak dapat dideserialisasi. + * Berkas pertama yang menentukan nilai atau _key_ pada _map_ maka akan digunakan + pada _map_ tersebut. + * Tidak pernah mengubah nilai atau _key_ dari suatu _map_. + Contoh: Pertahankan konteks pada berkas pertama yang mengatur `current-context`. + Contoh: Jika terdapat dua berkas yang menentukan nilai `red-user`, maka hanya gunakan + nilai `red-user` dari berkas pertama. + Meskipun berkas kedua tidak memiliki entri yang bertentangan pada `red-user`, + abaikan mereka. + + Beberapa contoh pengaturan variabel _environment_ `KUBECONFIG`, bisa melihat pada + [pengaturan vaiabel _environment_ KUBECONFIG](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable). + + Sebaliknya, bisa menggunakan berkas kubeconfig _default_, `$HOME/.kube/config`, + tanpa melakukan penggabungan. + +1. Konteks ditentukan oleh yang pertama sesuai dari pilihan berikut: + + 1. Menggunakan tanda `--context` pada perintah + 1. Menggunakan nilai `current-context` dari hasil gabungan berkas kubeconfig. + + Konteks yang kosong masih diperbolehkan pada tahap ini. + +1. Menentukan kluster dan pengguna. Pada tahap ini, mungkin akan ada atau tidak ada konteks. + Menentukan kluster dan pengguna berdasarkan yang pertama sesuai dengan pilihan berikut, + yang mana akan dijalankan dua kali: sekali untuk pengguna dan sekali untuk kluster: + + 1. Jika ada, maka gunakan tanda pada perintah: `--user` atau `--cluster`. + 1. Jika konteks tidak kosong, maka pengguna dan kluster didapat dari konteks. + + Pengguna dan kluster masih diperbolehkan kosong pada tahap ini. + +1. Menentukan informasi kluster sebenarnya yang akan digunakan. Pada tahap ini, mungkin + akan ada atau tidak ada informasi kluster. Membentuk informasi kluster berdasarkan urutan + berikut dan yang pertama sesuai akan digunakan: + + 1. Jika ada, maka gunakan tanda pada perintah: `--server`, `--certificate-authority`, `--insecure-skip-tls-verify`. + 1. Jika terdapat atribut informasi kluster dari hasil gabungan berkas kubeconfig, + maka gunakan itu. + 1. Jika tidak terdapat informasi mengenai lokasi server, maka dianggap gagal. + +1. Menentukan informasi pengguna sebenarnya yang akan digunakan. Membentuk informasi + pengguna dengan aturan yang sama dengan pembentukan informasi kluster, namun hanya + diperbolehkan ada satu teknik autentikasi untuk setiap pengguna: + + 1. Jika ada, gunakan tanda pada perintah: `--client-certificate`, `--client-key`, `--username`, `--password`, `--token`. + 1. Menggunakan _field_ `user` dari hasil gabungan berkas kubeconfig. + 1. Jika terdapat dua teknik yang bertentangan, maka dianggap gagal. + +1. Untuk setiap informasi yang masih belum terisi, akan menggunakan nilai `default` dan + kemungkinan akan meminta informasi autentikasi. + +## Referensi berkas + +Referensi _file_ dan _path_ pada berkas kubeconfig adalah bernilai relatif terhadap +lokasi dari berkas kubeconfig. +Referensi _file_ pada perintah adalah relatif terhadap direktori kerja saat ini. +Dalam `$HOME/.kube/config`, _relative path_ akan disimpan secara relatif, dan +_absolute path_ akan disimpan secara mutlak. + +{{% /capture %}} + + +{{% capture whatsnext %}} + +* [Mengatur Akses Pada Beberapa Kluster](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) +* [`kubectl config`](/docs/reference/generated/kubectl/kubectl-commands#config) + +{{% /capture %}} + +