Prometheus ile Kubernetes İzleme [Kullanım Durumları ve İzleme ile]
Yayınlanan: 2020-09-23İçindekiler
Prometheus Nerelerde ve Neden Kullanılır?
Prometheus Kubernetes, AWS, Azure veya GCloud Kubernetes kümelerine dağıtılabilen bir izleme aracıdır. Modern altyapıda önemli bir araç olarak kabul edilir. Modern DevOps'un manuel olarak işlenmesi daha karmaşık hale geliyor ve bu nedenle daha fazla otomasyona ihtiyaç duyuyor, bu nedenle genellikle kapsayıcılı uygulamaları çalıştıran birden çok sunucunuz var.
Tüm varlıkların birbirine bağlı olduğu bu altyapı üzerinde çalışan yüzlerce farklı süreç vardır, bu nedenle böyle bir kurulumun sorunsuz ve uygulama kesintileri olmadan çalışmasını sağlamak çok zordur. Pek çok konuma dağıtılmış çok sayıda sunucuyla bu kadar karmaşık bir altyapıya sahip olduğunuzu ve donanım düzeyinde veya hatalar, yanıt ve gecikme gibi uygulama düzeyinde neler olup bittiği hakkında hiçbir fikriniz olmadığını hayal edin.
Donanım arızalı veya aşırı yüklenmiş bu tür karmaşık altyapıdaki kaynaklar tükeniyor olabilir, ancak dağıtılmış tonlarca hizmet ve uygulamanız olduğunda daha fazla şey ters gidebilir. Bunlardan herhangi biri çökebilir ve diğer hizmetlerin arızalanmasına neden olabilir, çok fazla hareketli parçaya sahip olabilir ve uygulama aniden kullanıcılar tarafından kullanılamaz hale gelebilir. Bu yüz farklı şeyden tam olarak neyin yanlış gittiğini hızlı bir şekilde belirlemelisiniz; bu, sistemde manuel olarak hata ayıklarken zor ve zaman alıcı olabilir.
Prometheus Monitoring'i kullanmak için Bazı Kullanım Durumları
Örneğin, belirli bir sunucunun belleğinin tükendiğini ve bir Kubernetes kümesindeki iki veritabanı kabı arasında veritabanı eşitlemesi sağlamaktan sorumlu çalışan bir kapsayıcıyı başlattığını varsayalım. Bu da, bu iki veritabanı potunun başarısız olmasına neden oldu. Bu veritabanı, veritabanı kullanılamadığı için çalışmayı durduran bir kimlik doğrulama hizmeti tarafından kullanıldı.
Bu kimlik doğrulama hizmetine bağlı olan uygulama, artık kullanıcı arabirimindeki kullanıcıların kimliğini doğrulayamadı, ancak kullanıcı açısından bakıldığında, tüm gördüğünüz kullanıcı arabiriminde bir hata. Kümenin içinde neler olup bittiğine dair bir fikriniz olmadığında, burada görüntülenen olaylar zincirinin kırmızı çizgisini görmezsiniz; sadece hatayı görüyorsun. Şimdi nedeni bulmak ve düzeltmek için oradan geriye doğru çalışmaya başlayın. Ancak bu arama problemi sürecini daha verimli hale getirecek olan nedir? Hizmetlerin çalışıp çalışmadığını sürekli olarak izleyen ve bir hizmet çöktüğünde uyarı veren bir araç kullanabilirsiniz.
Tam olarak ne olduğunu bilirsiniz, hatta daha da iyisi, sorunları ortaya çıkmadan önce tespit eder ve bu sorunu önlemek için o altyapıdan sorumlu sistem yöneticilerini uyarır. Örneğin, tartışılan bu durumda, her sunucudaki bellek kullanımının durumunu düzenli olarak kontrol eder. Sunuculardan birinde olduğunda, örneğin bir saatten fazla bir süre boyunca %70'in üzerine çıkıyor veya artmaya devam ediyorsa, o sunucudaki belleğin yakında bitme riskini bildirir.

Veya, elastik arama, sunucunun disk alanı tükendiği veya elastik aramanın kendisine ayrılan depolama sınırına ulaştığı için yeni günlükleri kabul etmediği için uygulamanız için günlükleri görmeyi bıraktığınız başka bir senaryo düşünelim. İzleme aracı, depolama alanını sürekli olarak kontrol edecek ve bunu, depolama alanının esnek arama tüketimiyle karşılaştıracaktır. Riski görecek ve işletmeciye olası depolama sorununu bildirecektir.
Okuyun: Kubernetes Mülakat Soruları
İzleme aracına, uyarının tetiklenmesi gereken kritik noktanın ne olduğunu söyleyebilirsiniz. Kesinlikle log veri kaybı olabilecek kritik bir uygulamanız varsa çok katı olabilir ve bir kere yüzde elli ya da altmış kapasiteye ulaşıldığında önlem alabilirsiniz. Daha fazla depolama alanı eklemek uzun zaman alacaktır çünkü bu, organizasyonunuzda bazı BT departmanlarının ve diğer birkaç kişinin onayına ihtiyaç duyduğunuz bürokratik bir süreçtir.

Ayrıca, düzeltmek için daha fazla zamanınız olması için olası depolama sorunu hakkında daha önce bilgilendirilmek istiyorsunuz. Veya bir hizmetin bozulması ve ağ genelinde bir döngüde yüzlerce hata mesajı göndermeye başlaması nedeniyle uygulamanın aniden çok yavaşladığı üçüncü bir senaryo, bu da yüksek ağ trafiği oluşturur ve ağdaki bu tür artışları algılayan bir araca sahip olmak için diğer hizmetleri yavaşlatır. .
Öğrenin: Openshift ve Kubernetes: Openshift ve Kubernetes Arasındaki Fark

Kaynak
Prometheus'a maruz kalan Kubernetes Hizmeti keşifleri
Ana Bileşen: Prometheus Sunucusu
Prometheus Mimarisi

Kaynak
Prometheus Kubernetes'in mimarisi
Prometheus Kubernetes'in önemli özelliklerinden biri, diğer sistemlerde kesinti olduğunda bile güvenilir olacak şekilde tasarlanmış olmasıdır. Sorunları teşhis edebilir ve düzeltebilirsiniz. Bu nedenle her Prometheus sunucusu bağımsızdır, yani ağ depolamasına veya diğer uzak hizmetlere bağlı değildir.
Altyapının diğer kısımları bozulduğunda çalışacak ve onu kullanmak için kapsamlı bir altyapı kurmanıza gerek yok. Bununla birlikte, Prometheus'un ölçeklendirilmesinin zor olabilmesi dezavantajına da sahiptir. Bu nedenle, yüzlerce sunucunuz olduğunda, tüm bu ölçüm verilerini toplayan birden fazla Prometheus sunucunuz olmasını isteyebilirsiniz.
İlkelleri bu şekilde yapılandırmak ve ölçeklendirmek, bu özelliklerden dolayı çok zor olabilir. Bu nedenle, tek bir düğüm kullanmak daha az karmaşıktır ve çok kolay bir şekilde başlayabilirsiniz, Prometheus'un izleyebileceği ölçüm sayısını sınırlar. Bu soruna geçici bir çözüm bulmak için, ya daha fazla ölçüm verisi depolayabilmesi için Prometheus sunucusunun kapasitesini artırırsınız ya da Prometheus'un uygulamalardan topladığı ölçüm sayısını yalnızca ilgili olanlarla sınırlı tutacak şekilde sınırlandırırsınız.

Bu izleme aracı bulutta konuşlandırılabildiğinden, upGrad, Udemy, Coursera vb. platformlarda bulut bilişim kursları vererek bu tür konularda bilginizi artırabilirsiniz. Özellikle upGrad ile kurslar ülkemizin saygın kurumlarından biri olan IIIT-B tarafından tasarlanmaktadır. Bu size uygulamalı deneyim ve daha geniş bir bilgi yönü sağlayacaktır.
Kontrol edin: Kubernetes Vs. Docker: Bilmeniz Gereken Temel Farklılıklar
Çözüm
Kubernetes, kapsayıcılı uygulamaların ve mikro hizmetlerin dağıtımını, ölçeklenmesini ve yönetimini basitleştirir. Bu, yönetimlerin devam etmesine yardımcı olur, ancak yavaş yürütme gibi gizli sorunları tanımak ve çözmek için, durumunuza ilişkin yukarıdan aşağıya temel uygulama ve yürütme bilgilerini biriktirme ve hayal etme kapasitesine ihtiyacınız vardır.
İlgili bilgilerin yanı sıra sürekli verilere yaklaşmamak, durum ölçümlerinize karşılık gelmeyi neredeyse zorlaştırır, böylece siz de sorunları daha hızlı çözebilirsiniz.
Kubernetes, DevOps ve daha fazlasını öğrenmek ve ustalaşmak istiyorsanız, IIIT-B & upGrad'ın Full Stack Yazılım Geliştirme Programında PG Diplomasına göz atın.
