9 Ağustos 2026 Pazar

Kubernetes İle Birleşme Uygulamaları - Sebepsiz Özellikler/Hizmetler


    Bir uygulama geliştirmediğimiz sürece her container Kubernetes'in içinde koşan uygulamaların her birini bilmesine gerek yoktur.


Sadece yaratılan bir kümeyi idare etmeli, uygulamanız Kubernetes API veya diğer harici servisleri  kurcalamamalıdır. Sadece küme içerisinde varsayılan servisleri, hizmetleri bilmeli.



Bu senaryo, Kubernetes'i benimseyen ve başarısız olan aşırı hevesli ekiplerde çok yaygındır.


Uygulamalarını kümeden izole edin. Bazı klasik örnekler şu uygulamalardır:


* Diğer bölmelerle veri paylaşımı için belirli bir birim yapılandırması beklenmeli.


• Kubernetes ağı tarafından kurulan belirli bir hizmet/DNS adlandırması beklenmeli veya Belirli açık port varlığını varsaymalı.


• Kubernetes etiketlerinden ve açıklamalarından bilgi alınmalı.


• Bilgi için kendi bölmelerini sorgulamalı (örneğin hangi IP adresine sahip olduklarını görmek için)


• Yerel iş istasyonlarında düzgün çalışması için bir init veya sidecar konteynerine ihtiyaç duyar


• Diğer Kubernetes hizmetlerini doğrudan aranmalı. (örneğin,  Vault API gizli bilgileri bir Vault kurulumundan almalı ki varsayılan o anki cluster da olmalı.)


• Yerel bir kube yapılandırmasından veri okumalı.


  • Kubernetes API'sini uygulama içinden doğrudan kullanmalı.






Uygulamanız Kubernetes'e özgüyse (Otomatik ölçekleyici veya operatör) gerçekten de Kubernetes hizmetlerine doğrudan erişmesi gerekir.   


Ama standart web uygulamalarının %99'u bunun dışındadır.  uygulamanız tamamen Kubernetes'in içinde çalıştığından habersiz olmalı.








Uygulamanızın Kubernetes'e bağlı olup olmadığını gösteren litmus testi çalıştırma yeteneğini gösterir. 


Uygulamanız için  bir Docker compose file yaratırsanız basit bir şekilde ölecektir. Bu demektir ki; o zaman 12 faktörlü uygulama ilkelerini ve uygulamanızı takip ettiğiniz anlamına gelir özel ayarlara ihtiyaç duymadan herhangi bir cluster da kurulabilir.



Yerel Kubernetes testini anlamak önemlidir. Birkaç tane yerel Kubernetes dağıtımları için çözümler vardır.  (minikube, microk8s, kind vb.)


Bu çözümlere bakın ve bir uygulama üzerinde çalışan bir geliştiriciyseniz. Kubernetes'e dağıtmak ayrıca Kubernetes'i kendiniz çalıştırmanız gerekir.





Bu gerçeklerden daha uzak olmamalıdır. Uygulamanız doğru tasarlanmışsa bunları yapmamalısınız.


Taşırım doğru yapılmış ise entegrasyon testlerini local olarak çalıştırmak için Kubernetes'e ihtiyaç yoktur. Sadece uygulamayı kendi kendine başlatın. (Docker veya Docker-compose ile) ve testlerle doğrudan başlayın.





Bağımlılıklarınızdan bazılarının harici bir Kubernetes kümesinde çalışıyor olması sorun değil. Ama İşlevselliğini test ederken uygulamanın kendisinin Kubernetes'in içinde çalışmasına gerek olmamalıdır.


Alternatif olarak, yerel Kubernetes geliştirme için özel çözümlerden herhangi birini de kullanabilirsiniz.


Okteto, garden.io ve tilt.dev gibi.


19 Temmuz 2026 Pazar

Konteyner imajları içerisindeki Konfigürasyonlar


* Herhangi bir ortamda çalışabilmeleri anlamında "genel" olmalıdır.



* Konteyner görüntüleriniz bir kez oluşturulmalı ve daha sonra birinden yükseltilmelidir


* Konteynerin kendisinde hiçbir yapılandırma bulunmamalıdır.




Eğer Konteyner İmaj:


• sabit kodlanmış IP adresine sahipse,


• şifreler ve secret key içerirse,


• Diğer hizmetlere belirli URL'leri temsil ederse,


• "dev", "qa", "production" gibi etiketlere sahipse,


..O zaman çevreye bağlı konteyner görüntüleri oluşturma tuzağına düştünüz.






Bu durum her farklı ortam için, dağıtımda imajı yeniden oluşturmanız gerektiği anlamına gelir.




Bu sorunun çözümü çok basittir. Bilen "genel" konteyner görüntüleri oluşturun


Üzerinde koştukları ortam hakkında hiçbir şey yok. Yapılandırma için herhangi bir harici işlem.


Kubernetes configmaps, Hashicorp Consul, Apache Zookeeper vb. gibi yöntemler.






Artık tüm kümelerinizde dağıtılan tek bir görüntüye sahipsiniz.



İkincil bir avantaj, kümenizdeki yapılandırmayı değiştirmeniz gerekirse,


Tam konteyneri yeniden oluşturmak yerine harici yapılandırma sistemini basitçe değiştirebilir


Sıfırdan görüntü. Kullandığınız programlama diline ve çerçeveye bağlı olarak,


Herhangi bir yeniden başlatma veya yeniden dağıtım olmadan canlı yapılandırmayı bile güncelleyebilirsiniz.









4 Temmuz 2026 Cumartesi

Kubernetes dağıtımlarında LATEST etikete sahip kapsayıcıları kullanma


 Konteynerler inşa etmek için zaman harcadıysanız, bu sürpriz olmamalı. Docker görüntüleri için "latest" etiketini kullanmak başlı başına kötü bir uygulamadır çünkü "latest" sadece etiketin bir adıdır ve aslında "en yeni" veya "son olarak inşa edilmiş" anlamına gelmez. Bir kapsayıcı görüntüsünden bahsederken bir tane belirtmezseniz, en son varsayılan etikettir. Bir Kubernetes dağıtımında "latest" etiketini kullanmak daha da kötü bir yçeivioldur, çünkü bunu yaparak artık kümenizde nelerin dağıtıldığını bilmiyorsunuzdur.






Bu dağıtımı uygularsanız, artık hangi kapsayıcı etiketinin gerçekte dağıtıldığına dair tüm bilgileri kaybetmiş olursunuz. Konteyner etiketleri değiştirilebilir, bu nedenle "latest" etiketi kimse için gerçekten bir şey ifade etmiyor. Belki bu konteyner görüntüsü 3 dakika önce oluşturuldu, belki 3 ay önceydi. Hangi sürümü içerdiğini bilmek için CI sisteminiz için tüm günlüklerinizi yakalamanız veya hatta incelemek için görüntüyü yerel olarak indirmeniz gerekecektir.


"latest" etiketi, her zaman çekme politikasıyla birleştirirseniz daha da tehlikelidir. Diyelim ki bölmeniz öldü ve Kubernetes onu sağlıklı hale getirmek için yeniden başlatmaya karar verdi (ilk etapta Kubernetes'i bu yüzden kullandığınızı unutmayın).



 


Kubernetes bölmeyi yeniden planlayacak ve çekme politikanız buna izin veriyorsa, Docker kayıt defterinizden "latest" görüntüyü tekrar çekecektir! Bu, bu arada "latest" etiketi değiştiyse, artık bu özel bölmede diğer bölmelerin sahip olduğundan farklı yeni bir sürümünüz olduğu anlamına gelir. Çoğu durumda, istediğiniz bu değildir.



Ayrıca, bölmeleri manuel olarak öldürerek ve "latest" resminizi tekrar çekmelerini bekleyerek "dağıtımlar" yapmanın başarı için bir reçete olduğunu söylemeye gerek yok (eğer bu "dağıtım" biçimini kullanırsanız).



Kubernetes'teki doğru dağıtım biçimi uygun bir etiketleme stratejisi izlemelidir. Belirli bir stratejiye sahip olduğunuz sürece sorun oluşmayacaktır.



Yararlı Öneriler:

    

Git karmalarıyla etiketleri kullanmak (örn. docker.io/myusername/my-app:acef3e). Bunun uygulanması kolaydır, ancak bir Git karması teknik olmayan kişiler tarafından kolayca okunamadığı için abartılı olabilir.


Semantik sürümleri takip eden uygulama sürümüyle etiketler kullanmak (örn. docker.io/ myusername/my-app:v1.0.1). Bu yöntemin hem geliştiriciler hem de geliştirici olmayanlar için birçok avantajı vardır.


Yapı numarası veya yapım tarihi/saati gibi ardışık bir sayıyı gösteren etiketleri kullanmak. Bu formatla çalışmak çok zordur, ancak eski uygulamalarla benimsenmesi kolay olabilir.



Önemli olan, konteyner etiketlerinin değişmez olarak ele alınması gerektiği konusunda hemfikir olmanız gerektiğidir. V2.0.5 olarak işaretlenmiş bir Docker görüntüsü yalnızca bir kez oluşturulmalı ve bir ortamdan diğerine yükseltilmelidir.



V2.0.5 etiketli görüntüyü kullanan bir dağıtım görürseniz, şunları yapabilmelisiniz... 


• Bu görüntüyü yerel olarak çekin ve kümede çalışanla aynı olduğundan emin olun; 


• Oluşturduğu Git karmasını kolayca takip edin. 


Dağıtım iş akışlarınız herhangi bir şekilde "latest" etiketleri kullanmaya bağlıysa, bir saatli bombanın üzerinde oturuyorsunuz.

8 Aralık 2024 Pazar

Ulu Önderimiz Mustafa Kemal ATATÜRK Sözleri

 


  • Softa sınıfının din simsarlığına izin verilmemelidir. Dinden maddi menfaat temin edenler. İğrenç kimselerdir. İşte bu duruma karşıyız ve buna müsaade etmiyoruz.

  • Laiklik, yalnız din ve dünya işlerinin ayrılması demek değildir. Tüm yurttaşların vicdan, ibadet ve din özgürlüğü de demektir.

  • Din bir vicdan meselesidir

  • Az zamanda çok ve büyük işler yaptık. Bu işlerin en büyüğü, temeli Türk kahramanlığı ve yüksek Türk kültürü olan Türkiye Cumhuriyeti’dir.

  • Egemenlik kayıtsız şartsız milletindir.


  • Ancak, ulusun hayatı tehlikeye girmedikçe, savaş bir cinayettir

  • Öğretmenler ! Yeni nesil sizlerin eseri olacaktır.

  • Hattı müdafaa yoktur, sathı müdafaa vardır. O satıh, bütün vatandır. Vatanın her karış toprağı, vatandaşın kanıyla ıslanmadıkça, terk olunamaz

  • Ulusun bağımsızlığını, yine ulusun kesin kararı ve direnişi kurtaracaktır.

  • Hayatı ve özgürlüğü için ölümü göze alan bir millet asla yenilmez

  • Tam bağımsızlık denildiği zaman, doğal, siyasal, mali, adli, askeri, kültürel ve her alanda tam bağımsızlık anlaşılır


  • Türkiye'nin güvenini amaç edinen, hiçbir başka ulusun aleyhinde olmayan bir barış yolu, her zaman bizim ilkemiz olacaktır.

  • Bağımsızlık, uğruna ölmesini bilen toplumların hakkıdır.

  • Türkiye Cumhuriyeti mesut, muvaffak ve muzaffer olacaktır.

  • Türk milletinin karakterine ve adetlerine en uygun olan idare, Cumhuriyet idaresidir.

  • Hiçbir şeye ihtiyacımız yok, yalnız bir şeye ihtiyacımız vardır; çalışkan olmak!


  • Biz Türkler, bütün tarihimiz boyunca hürriyet ve istiklale timsal olmuş bir milletiz.

  • En büyük savaş, cahilliğe karşı yapılan savaştır.

  • Taş kırılır, tunç erir ama Türklük ebedidir

  • Millî hedef belli olmuştur. Ona ulaşacak yolları bulmak zor değildir. Önemli olan, çetin olan o yollar üzerinde çalışmaktır. Denebilir ki hiçbir şeye muhtaç değiliz. Yalnız tek bir şeye çok ihtiyacımız vardır: Çalışkan olmak. Toplumsal hastalıklarımızı incelersek temel olarak bundan başka, bundan önemli bir hastalık keşfedemeyiz; hastalık budur. O halde ilk işimiz bu hastalığı esaslı bir şekilde tedavi etmektir. Milleti çalışkan yapmaktır. Servet ve onun doğal sonucu olan refah ve mutluluk, yalnız ve ancak çalışkanların hakkıdır

  • Hürriyet olmayan bir memlekette ölüm ve çöküş vardır. Her ilerleyişin ve kurtuluşun anası hürriyettir


  • Benim naçiz vücudum elbet bir gün toprak olacaktır, ancak Türkiye Cumhuriyeti ilelebet payidar kalacaktır.

  • Bir ulus sanattan ve sanatçıdan yoksunsa, tam bir hayata sahip olamaz.

  • Hayatı ve özgürlüğü için ölümü göze alan bir millet asla yenilmez

  • Şuna inanmak gerekir ki, dünya yüzünde gördüğümüz her şey kadının eseridir.

  • Egemenlik verilmez, alınır.

  • Hayatta en hakiki mürşit ilimdir.


  • Yurtta sulh, cihanda sulh.

  • İki Mustafa Kemal vardır: Biri ben, et ve kemik, geçici Mustafa Kemal... İkinci Mustafa Kemal, onu "ben" kelimesiyle ifade edemem; o, ben değil, bizdir! O, memleketin her köşesinde yeni fikir, yeni hayat ve büyük ülkü için uğraşan aydın ve savaşçı bir topluluktur. Ben, onların rüyasını temsil ediyorum. Benim teşebbüslerim, onların özlemini çektikleri şeyleri tatmin içindir. O Mustafa Kemal sizsiniz, hepinizsiniz. Geçici olmayan, yaşaması ve başarılı olması gereken Mustafa Kemal odur!

  • Bir ulus, sımsıkı birbirine bağlı olmayı bildikçe yeryüzünde onu dağıtabilecek bir güç düşünülemez.