Kiali ile Microservice’lerin trafiğini görselleştirin
Kiali ,Openshift Cluster yada Kubernetes Cluster’ınızın üzerinde çalışan Istio(Service Mesh) katmanı ile konuşarak, size microservice’ler arasındaki ilişkiyi(trafiğin nasıl aktığını,hangi microservice’in kiminle konuştuğunu) görsel olarak sunan bir open-source projedir.Kiali kurulumu için ortamınızda Istio olmak zorundadır.Istio olmadan çalışmaz.Genel yapısı aşağıdaki gibidir.
Temel olarak front-end ve back-end servislerinden oluşuyor.
Back-end servisi ,Go dilinde yazılan ve container üzerinde çalışan bir uygulamadır.Direk olarak Istio katmanı ile konuşarak aldığı datayı işler ve front-end servisine yollar.Herhangi bir storage’a ihtiyaç duymaz.İhtiyaç duyduğu tüm bilgiyi environment variable halinde local’inde saklar.Kodunu linkteki github adresinden bulabilirsiniz.
Front-end servisi ise Type-script ile yazılan ve React ile oluşturulan bir web uygulaması olarak karşımıza çıkıyor.Kodunu linkteki github adresinden bulabilirsiniz.
Kiali kurulumunu ben minikube üzerinde yapacağım.O yüzden ilk önce ingress’imi aktif etmem gerekiyor.
emre@emreozkan:~$ minikube addons enable ingress
ingress was successfully enabled
Kurulumu gerçekleştirmeden önce Kubernetes’inizin üzerinde bir Istio yapılandırılmış olması gerektiğini belirtmiştik.Istio hakkında bilgi almak isterseniz alttaki makalelerimi inceleyebilirsiniz.
Alttaki komut setini çalıştırarak kurulumu gerçekleştiriyoruz.
JAEGER_URL="http://jaeger-query-istio-system.127.0.0.1.nip.io"
GRAFANA_URL="http://grafana-istio-system.127.0.0.1.nip.io"
VERSION_LABEL="v0.10.0"
curl https://raw.githubusercontent.com/kiali/kiali/${VERSION_LABEL}/deploy/kubernetes/kiali-configmap.yaml | \
VERSION_LABEL=${VERSION_LABEL} \
JAEGER_URL=${JAEGER_URL} \
ISTIO_NAMESPACE=istio-system \
GRAFANA_URL=${GRAFANA_URL} envsubst | kubectl create -n istio-system -f -
curl https://raw.githubusercontent.com/kiali/kiali/${VERSION_LABEL}/deploy/kubernetes/kiali-secrets.yaml | \
VERSION_LABEL=${VERSION_LABEL} envsubst | kubectl create -n istio-system -f -
curl https://raw.githubusercontent.com/kiali/kiali/${VERSION_LABEL}/deploy/kubernetes/kiali.yaml | \
VERSION_LABEL=${VERSION_LABEL} \
IMAGE_NAME=kiali/kiali \
IMAGE_VERSION=${VERSION_LABEL} \
NAMESPACE=istio-system \
VERBOSE_MODE=4 \
IMAGE_PULL_POLICY_TOKEN="imagePullPolicy: Always" envsubst | kubectl create -n istio-system -f -
Benim Istio namespace’imin içine kiali adında bir deployment pod’u yaratıldı ve çalışır durumda.
Kurulum gerçekleştikten sonra minikube’un ipsini alıyorum.
Alttaki kullanıcı adı şifre bilgilerle Kiali arayüzüne bağlanabilirsiniz.
http://192.168.99.100
Kullanıcı adı: admin
Şifre: admin
Benim namespace’lerimin olduğu bir pencere karşılıyor.Ben default namespace içine örnek bir uygulama deploy ettim.
Altta arayüzü ve trafiğin akışını görebileceğiniz 3 adet ufak video hazırladım.Sırasıyla izleyebilirsiniz.
Diğer makalelerim için profilimi ziyaret edebilirsiniz.
Blogumu ziyaret etmek isterseniz