Kubernetes Dashboard Kurulumu

İlhan EROĞLU
Turk Telekom Bulut Teknolojileri
4 min readOct 6, 2022

Bir önceki makalede dört node’lu bir kubernetes cluster kurulumu yapmıştık. Burada ise o cluster üzerinde kubernetes dasboard kurulumunu, aktif edilme işlemini ve oluşturacağımız token ile giriş yapma işlemlerinden bahsedeceğiz.

Kubernetes dasboard cluster’ı yönetmeye, izlemeye, oluşan hataları görmeye olanak tanır. Buradan cluster’a bakıp işlemlerimizi yapabiliriz. Node’ların sağlığını görüntüleme, namespace’leri görüntüleme kısacası komut satırında yapabileceğiz şeyleri yapabileceğimiz bir arayüzdür. Kurulumu kolay ve kullanışlıdır.

Aktif bir dashboard görünümü

Kurulum adımları;

  1. Github üzerinde bulunan yaml dosyası ile kubernetes-dashboard namespace’ini master node üzerine deploy edebiliriz. Şu anda en son sürüm olarak 2.7.0 mevcuttur. Ben en son sürümü kullanacağım. Kullanılan komut ve ekran çıktısı aşağıdaki gibi olmalıdır.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

Burada oluşan namespace’i, servisleri ve serviceaccount’ları kubectl ile kontrol edebiliriz. Aşağıdaki komut ile kubernetes-dashboard isminde yeni bir namespace oluştuğunu görebiliriz.

kubectl get namespaces
kubectl get all -n kubernetes-dashboard

2. Birinci adım tamamlandıktan sonra aşağıdaki komut ile uygulamamızı başlatabiliriz.

kubectl proxy

Yukarıdaki ekran çıktısını gördükten sonra dasboard’u başlamıştır. Aşağıdaki linki master sunucunuzda bir browser aracılığıyla çalıştırarak açılış ekranının geldiğini görebilirsiniz.

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

Burada kubectl proxy --help komutu ile farklı IP’lerden ya da host’lardan bağlanmak için farklı seçenekler bulunmaktadır. Ancak HTTPS olmadan uzaktan bağlanmayı denerseniz girişe izin vermeyecektir. O nedenle ben master server üzerine firefox kurup X11 forwarding ile ekran alıp bağlantı yaptım.

Örneğin;

Komutu kubectl proxy — address=’192.168.1.200' — accept-hosts=’^*$’ bu şekilde çalıştırıp kendi local bilgisayarımdan bağlanmak istediğimde aşağıdaki gibi uyarı vermektedir. HTTP bağlantı olduğu için yalnızca localhost üzerinden bağlanmaya müsade etmektedir.

Logging in is available only if URL used to access Dashboard starts with:

3. Bu adımda ise Dashboard’a girmek için 2 yöntem bulunmaktadır. Birisi kubeconfig diğeri Token ile giriştir. Biz burada token üreterek login olacağız. Bunun için aşağıdaki linkteki hazırlanmış yaml dosyalarını kullanacağız.

https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

Service account için aşağıdaki yaml’ı kullanacağız. vi dashboard-adminuser.yaml ile yeni bir dosya oluşturarak aşağıdaki satırları yapıştırabiliriz.

apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard

kubectl -f dashboard-adminuser.yaml

Yukarıdaki komutu ile deploy işlemini yapabiliriz.

kubectl -f dashboard-adminuser.yaml

ii ) ClusterRoleBinding ile daha önceden oluşturduğumuz admin-user kullanıcısına cluster-admin yetkisi aşağıdaki yaml ile veriyoruz. admin-role-binding.yaml dosyasını oluşturuyoruz.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard

kubectl -f admin-role-binding.yaml

Bu işlem sonrasında ise admin-user kullanıcısı için bir token oluşturacağız. Token oluşturma işlemini versiyon’a göre farklılık göstermektedir.

1.24 üzeri versiyon için aşağıdaki komut;

kubectl -n kubernetes-dashboard create token admin-user

1.24 altı versiyonlar için ise aşağıdaki komut;

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

Bizim versiyonumuz 1.20.1 olduğu için ikinci komutu kullanacağım.

Bunun sonrasında çıkan token değerini ekrana yapıştırdığımızda dashboard’a başarılı şekilde giriş yapabileceğimizi görebilirsiniz.

Ardından Cluster kontrollerinizi yapabilirsiniz.

Namespace’lerin görüntüsü

--

--