Devops

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu