Kubeconfig, "kubectl" gibi uygulamalar ile kubernetes kümelerine uzaktan erişebilirliği sağlayan yapılandırma dosyasıdır. Dosya formatı ".yaml" olarak belirlenmiştir.
Kubeconfig içerisinde 3 ana başlık vardır. Bunlar;
- Clusters (kümeler)
- Users (kullanıcılar)
- Contexts (bağlamlar)
Bu içerikler kubectl veya Kubernetes Lens gibi uygulamaları kullanabilmek için yani Kubernetes Kümenize uzaktan bağlantı yapabilmek için gerekli yapılardır.
Kubeconfig içeriği
Clusters (kümeler)
Elimizdeki kubeconfig dosyası ile hangi kümelere erişebileceğimiz belirlenmektedir. Tek bir kümeye erişilebileceği gibi birden fazla küme de belirtilebilmektedir.
Aşağıda örnek bir k8s kümesinin kubeconfig üzerinde tanımı bulunmaktadır. Küme'nin adı, sunucu adresi ve sertifika otoritesi sertifika verisi bulunmaktadır.
clusters:
- name: "yerelkume"
cluster:
server: "https://192.168.1.100/k8s/clusters/yerelkume"
certificate-authority-data: "LS0tL...0tLS1"
Bu veriler kubeconfig üzerinde tanımlı kümeleri belirtmektedir.
Users (kullanıcılar)
Kubeconfig dosyası içerisinde çeşitli kümelere giriş yapmak için gerekli kullanıcılar da tanımlıdır. Kullanıcılar token üzerinden giriş yapabileceği gibi, kullanıcı adı ve parola ile de tanımlanabilmektedir. Tabi ki tüm bunlar kümeyi oluştururken veya küme içerisinden belirlemeniz gerekmektedir.
Aşağıda bu iki duruma örnek sunulmaktadır:
users:
- name: "yerelhesap1"
user:
token: "kubeconfig-user-jltpvsvzxk:bwdtdfsdfsdsfsdf...dsfsdsdfh"
- name: "yerelhesap2"
user:
username: hesap2
password: Parola01.01.!
Contexts (bağlamlar)
Kubeconfig içerisindeki bağlam(context)ları Diğer iki bölümün birleştiricisi olarak düşünülebiliriz.
Aşağıda örneğini görebileceğimiz şekilde bir kümenin içerisinde, yukarıda tanımladığımız gibi 2 kullanıcıyı atayabilirsiniz.
contexts:
- name: "bir"
context:
user: "yerelhesap1"
cluster: "yerelkume"
- name: "iki"
context:
user: "yerelhesap2"
cluster: "yerelkume"
Ve tabi ki istediğiniz kombinasyon ile bu yapıları kullanabilirsiniz.
kubectl ile kubeconfig dosyasının kullanımı
Genellikle kubectl ile birlikte kendi ev dizininizdeki ~./.kube/config
dosyası kullanılmaktadır. Fakat isterseniz aşağıdaki şekilde her komut içerisinde yapılandırma dosyasını vererek de çalıştırabilirsiniz.
kubectl cluster-info --kubeconfig=/istenilen/dizin/dosya
Bu yapının bir alternatifi olarak da aşağıdaki gibi KUBECONFIG BASH değişkeni olarak yapılandırma dosyasını verebilirsiniz.
export KUBECONFIG=/istenilen/dizin/dosya
Fakat bu çevre değişkenini değiştirdiğinizde sadece bulunduğunuz oturumda değiştiğini bilmeniz gerekir. Gerekirse bu çevre değişkenini "bash profilinize" ekleyecek şekilde otomatikleştirebilirsiniz.
Rancher üzerindeki küme yapılandırma dosyası
Rancher kullanıyorsanız ve çoklu küme kullanıyorsanız ilgili kümenin kubeconfig içeriğine rahatlıkla erişebilirsiniz.
Bunun için öncelikle sol üstteki hamburger menü'den Cluster Management ( Küme YÖnetimi ) içerisinde kümelerin listelendiği ekrana gelmeniz gerekiyor.
Bu ekranda kümeyi seçip Download KubeConfig diyebileceğiniz gibi en sağdaki üç noktaya basarak da aynı işlemi yapabilirsiniz.
Bu sayede Rancher üzerindeki kümenizi uzaktan kubectl veya Kubernetes Lens ile de yönetebilirsiniz.