Gunakan berkas kubeconfig untuk mengatur informasi mengenai klaster, pengguna,
namespace, dan mekanisme autentikasi. Perintah kubectl
menggunakan berkas
kubeconfig untuk mencari informasi yang dibutuhkan untuk memilih klaster dan
berkomunikasi dengan API server dari suatu klaster.
Catatan: Sebuah berkas yang digunakan untuk mengatur akses pada klaster disebut dengan berkas kubeconfig. Ini cara yang umum digunakan untuk mereferensikan berkas konfigurasi. Ini tidak berarti ada berkas dengan namakubeconfig
.
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
.
Instruksi langkah demi langkah untuk membuat dan menentukan berkas kubeconfig, bisa mengacu pada Mengatur Akses Pada Beberapa Klaster.
Misalkan kamu memiliki beberapa klaster, pengguna serta komponen dapat melakukan autentikasi dengan berbagai cara. Sebagai contoh:
Dengan berkas kubeconfig, kamu bisa mengatur klaster, pengguna, dan namespace. Kamu juga bisa menentukan konteks untuk mempercepat dan mempermudah perpindahan antara klaster dan namespace.
Sebuah elemen konteks pada berkas kubeconfig digunakan untuk mengelompokkan
parameter akses dengan nama yang mudah. Setiap konteks akan memiliki 3 parameter:
klaster, pengguna, dan namespace. Secara default, perintah kubectl
menggunakan
parameter dari konteks yang aktif untuk berkomunikasi dengan klaster.
Untuk memilih konteks yang aktif, bisa menggunakan perintah berikut:
kubectl config use-context
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
.
Untuk melihat konfigurasimu, gunakan perintah berikut ini:
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:
--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:
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.
Sebaliknya, bisa menggunakan berkas kubeconfig default, $HOME/.kube/config
,
tanpa melakukan penggabungan.
Konteks ditentukan oleh yang pertama sesuai dari pilihan berikut:
--context
pada perintahcurrent-context
dari hasil gabungan berkas kubeconfig.Konteks yang kosong masih diperbolehkan pada tahap ini.
Menentukan klaster dan pengguna. Pada tahap ini, mungkin akan ada atau tidak ada konteks. Menentukan klaster dan pengguna berdasarkan yang pertama sesuai dengan pilihan berikut, yang mana akan dijalankan dua kali: sekali untuk pengguna dan sekali untuk klaster:
--user
atau --cluster
.Pengguna dan klaster masih diperbolehkan kosong pada tahap ini.
Menentukan informasi klaster sebenarnya yang akan digunakan. Pada tahap ini, mungkin akan ada atau tidak ada informasi klaster. Membentuk informasi klaster berdasarkan urutan berikut dan yang pertama sesuai akan digunakan:
--server
, --certificate-authority
, --insecure-skip-tls-verify
.Menentukan informasi pengguna sebenarnya yang akan digunakan. Membentuk informasi pengguna dengan aturan yang sama dengan pembentukan informasi klaster, namun hanya diperbolehkan ada satu teknik autentikasi untuk setiap pengguna:
--client-certificate
, --client-key
, --username
, --password
, --token
.user
dari hasil gabungan berkas kubeconfig.Untuk setiap informasi yang masih belum terisi, akan menggunakan nilai default
dan
kemungkinan akan meminta informasi autentikasi.
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.
Apakah halaman ini berguna?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.