Prometheus Stack / Kubernetes Kurulum
Bu yazımda daha önce linux vm’e kurduğumuz prometheus’u, Kubernetes Cluster içine kurulum yapacağız ve kubenetes cluster’ın içine yükleyeceğimiz aracımız ile diğer uygulamaları ve cluster’In kendisini gerekli metrikler ile izleyeceğiz.

Kurulum bir önceki vm üzerine kurulumundan biraz farklı olacak. Çünkü Kubernetes ortamında Prometheus’un Operator kısmını yöneten Custom Resource(Özel kaynak) ‘ları olacak. Böylece istemediğimiz kadar objenin metriklerini canlı izlemiş olacağız. Linux Vm’dekinin aksine node exporter kullanmayıp , kubernetes daemonSet deploy edip exporter Pod haline getirip otomize edeceğiz.
Ek olarak daha önce kubernetes ile haşır neşir olduysanız, içerisine kurulan her bir spesifik uygulamanız genellikle bir deployment, servis , secret ,configmaps vb. ile oluştuğundan dolayı kolay ve sağlıklı kurulum için HelmChart paket yöneticisini kullanacağız. Helm, Kubernetes için bir package management aracıdır. Uygulamaları template yaml dosyası şeklinde kubernetes manifest hazırlayarak paketler (Chart), dağıtır ve yönetir hatta kendinize özel paketler yaratıp helm reponuzda çekebilirsiniz. https://helm.sh/docs/intro/quickstart/
GEREKSİNİMLER
Blog üzerinden adımları takip etmek için Mac veya Windows kullanıyorsanız Docker Desktop uygulamasını indirip çark simgesinden kubernetes’i etkinleştirebilir veya buradan indirebilirsiniz.
Minikube kurarak kubernetes ortamını lokalinizde sağlayabilirsiniz.
Helm chart kullanarak kurulum yapılacağı için helm yüklü olmalı.
KURULUM
Kubernetes ortamında her bir çalışan uygulamanın kendine ait bir Namespace ile ayırarak kullandığımız için kubernetes ortamında ilk önce kurulum için bir namespace oluşturalım
kubectl create namespace monitoring
Prometheus-community reposunu helm’e ekliyoruz.
helm repo add prometheus-community https://prometheus-community.github.io helm-charts
helm repo update
Şimdi oluşturduğumuz monitoring namespace üzerine helm ile Prometheus Stack kurulumunu için install komutunu kullanalım.
helm install prometheus-stack prometheus-community/kube-prometheus-stack --namespace monitoring
Bu adıma kadar yükleme işlemi tamamlandı ve oluşturulan Podlarımızı kontrol edebiliriz.
kubectl get pods -n monitoring
Bu komut sonrası output olarak grafana servisininde ayakta olduğunu göreceksiniz. Yapmamız gereken port forward yapıp grafanayı bağlamak olacak.
kubectl port-forward service/prometheus-grafana 8888:80 -n monitoring
Sonrasında tarayıcınızda localhost üzerinden erişebilirsiniz.
localhost:8888
Giriş login ekranı geldikten sonra kullanıcı ve parola bilgilerini secret objemizden alalım.
Kubernetes’te Secret objesi (object), şifreler, token’lar, API anahtarları gibi hassas bilgileri güvenli bir şekilde saklamak ve pod’lara ulaştırmak için kullanılır. Burada şifre bilgileri base64 ile encode edilmiş fakat decode etmek kolaydır.
kubectl get secret -n monitoring
kubectl get secret prometheus-stack-grafana -n monitoring -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Username: admin
Password: prom-operator
Giriş yaptıktan sonra karşınıza gelen Grafana panelinde Dashboards > General adımlarını takip ederek helm reposuyla gelen birçok dashboard geliyor.

Farklı tipteki başka dashboard’ları dashboard id’lerini kopyalarak kendi panelinize Dashboard > import etmek mümkündür. Keşfetmek için https://grafana.com/grafana/dashboards/ sayfasında bulabilirsiniz.