Staj

  • Django Uygulamasını Helm Chart’a Dönüştürme ve HPA ile Otomatik Ölçeklendirme

    Bu görevde daha önce Kubernetes üzerinde çalıştırdığım Django ve PostgreSQL yapısını Helm Chart’a dönüştürdüm. Böylece bütün YAML dosyalarını tek tek çalıştırmak yerine uygulamayı Helm üzerinden daha düzenli bir şekilde kurabilir ve yönetebilir hale getirdim. Daha sonra HPA ekleyerek trafik arttığında Django pod sayısının otomatik olarak artmasını, trafik düştüğünde ise tekrar azalmasını test ettim.

    Bu Görevde Ne Yaptım?

    İlk olarak Metrics Server’ı aktif ettim ve Kubernetes’in podların CPU ve RAM kullanımını görebildiğini kontrol ettim. Daha sonra Helm’i bilgisayarıma kurdum. Jenkins’i de Helm kullanarak Minikube içerisine kurup çalıştırdım.

    Sonrasında Django ve PostgreSQL için daha önce hazırladığım manifest dosyalarını bir Helm Chart yapısına çevirdim. Değişebilecek ayarları values.yaml dosyasında tuttum. Veritabanı parolası ve Django secret key gibi gizli bilgileri ise ayrı bir dosyada sakladım ve bu dosyayı Git’e göndermedim.

    Otomatik Ölçeklendirme Testi

    Django uygulaması için minimum 2, maksimum 8 pod olacak şekilde HPA tanımladım. CPU kullanım hedefini yüzde 50 olarak belirledim. Daha sonra Siege ile uygulamaya yoğun istek gönderdim.

    Test sırasında CPU kullanımı yaklaşık %390 seviyesine kadar yükseldi ve HPA pod sayısını önce 2’den 4’e, daha sonra 8’e çıkardı. Test bittikten ve CPU kullanımı düştükten bir süre sonra pod sayısı tekrar 2’ye indi. Böylece otomatik ölçeklendirmenin hem büyüme hem de küçülme tarafının çalıştığını görmüş oldum.

    Otomatik Ölçeklendirme Testi Görüntüsü

    Bu Görevden Ne Öğrendim?

    Bu görev sayesinde Helm’in Kubernetes dosyalarını daha düzenli ve tekrar kullanılabilir hale getirdiğini öğrendim. HPA’nın doğrudan CPU miktarını değiştirmediğini, ihtiyaç olduğunda yeni podlar açarak gelen yükü birden fazla pod arasında dağıttığını daha iyi anladım. Ayrıca Metrics Server olmadan HPA’nın CPU verisini okuyamayacağını uygulamalı olarak gördüm.