DEV Community

Ali Orhun Akkirman for Açıklab

Posted on

Kubeconfig nedir?

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"
Enter fullscreen mode Exit fullscreen mode

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.!
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Image description

Bu sayede Rancher üzerindeki kümenizi uzaktan kubectl veya Kubernetes Lens ile de yönetebilirsiniz.

Top comments (0)