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.