Konu İşleyişi — terminal bash
root@forum:~$ cat /etc/motd
╔══════════════════════════════════════╗
║  Konu İşleyişi
║  Forum Topluluğuna Hoş Geldiniz
╚══════════════════════════════════════╝
root@forum:~$ ls /forumlar/
$ oturum --durum: giriş yapılmadı | giriş-yap | kayıt-ol
$ cat "Kubernetes Rollback İşlemi Nasıl Yapılır"
sarp_dursun (Member)
10-28-2026, 09:59 AM

Kalıcı Veri için Persistent Volume Kullanımı



Kubernetes ile konteyner orkestrasyonunun öncelikli kavramları, bulut tabanlı uygulama mimarilerinin çekirdeğini oluşturur. Kubernetes adını verdiğimiz bu açık kaynaklı platform, konteyner imajlarının dağıtımını, ölçeklendirilmesini ve yönetimini kendiliğinden hale getirir. Pod kavramı, bir veya birden fazla konteyneri tek bir ağ ve depolama alanını paylaşarak çalıştıran en küçük dağıtım birimidir. Deployment nesnesi ise pod'ların hedeflenen sayısını ve sürümünü tanımlayarak sürekli güncelleme imkânı sunar. Service kaynağı, pod'lara kalıcı bir ağ adresi kazandırarak trafiğin doğru hedefe yönlendirilmesini sağlar. Control plane bileşenleri olan API server, scheduler ve etcd, kümenin mevcut halini izleyip yönetir. Worker node'lar üzerinde çalışan kubelet ise pod'ların beklenen durumda kalmasını denetler. Namespace yapısı, aynı küme içinde kaynakların mantıksal olarak ayrılmasına imkân verir. ConfigMap ve Secret nesneleri, yapılandırma bilgilerini uygulama kodundan bağımsız biçimde yönetmeye yardımcı olur. Label ve selector mekanizması, kaynakların esnek biçimde gruplanmasını ve seçilmesini mümkün kılar. Bu kavramların tamamı birlikte düşünüldüğünde, Kubernetes'in bir sistem katmanı olarak nasıl çalıştığı daha net anlaşılır. Her yeni kavram, bir önceki kavramın temeline inşa edilerek öğrenildiğinde kalıcı bir kavrayış oluşur.


Kubernetes kullanmanın en büyük faydalarından biri, uygulamaların yüksek kullanılabilirlik ile çalışmasını mümkün kılmasıdır. Bir pod çöktüğünde sistem onu otomatik olarak yeniden oluşturur ve kullanıcı fark etmeden hizmet devam eder. Yük yoğunlaştığında yatay ölçeklendirme ile pod sayısı kısa sürede artırılabilir, azaldığında ise kaynaklar geri salınır. Bu esneklik, bulut maliyetlerinin kontrol altında tutulmasına destek sağlar. Sürüm güncellemeleri, rolling update stratejisiyle aşamalı olarak uygulanabilir ve gerektiğinde geri sürüme dönülebilir. Farklı ortamlarda, yani geliştirme, test ve üretimde, aynı manifest dosyalarının kullanılması tutarlılığı güçlendirir. Ekipler bu sayede altyapı farklılıklarından kaynaklanan hataları azaltarak daha verimli teslimat yapabilir. Açık kaynak ekosistemi, izleme, günlükleme ve güvenlik için sayısız eklenti sunduğundan esnek bir yapı oluşur. Büyük bulut sağlayıcılarının yönetilen Kubernetes hizmetleri, işletim yükünü ciddi ölçüde hafifletir. Sonuç olarak Kubernetes, ölçeklenen ve kararlı sistemler kurmak isteyen organizasyonlar için önemli bir yatırım niteliği taşır.


Kubernetes ile bir uygulamayı dağıtmak için önce uygun bir küme kurmak gerekir. geliştirme ortamda Minikube, kind veya k3s gibi araçlarla hızlıca tek düğümlü bir küme oluşturulabilir. Ardından konteyner imajı Dockerfile ile derlenir ve bir kayıt defterine gönderilir. Üçüncü adımda uygulamanın beklenen durumunu tanımlayan bir Deployment manifesti YAML formatında yazılır. Bu manifestte replica sayısı, imaj etiketi ve kaynak limitleri net biçimde belirtilmelidir. Manifest, kubectl apply komutuyla kümeye gönderildiğinde scheduler pod'ları uygun node'lara yerleştirir. Dördüncü adımda uygulamaya bağlantı sağlamak için bir Service nesnesi tanımlanır. Hizmet tipi ClusterIP, NodePort veya LoadBalancer şeklinde seçilebilir. Beşinci adımda canlılık ve hazırlık probe'ları eklenerek sağlıksız pod'ların tespit edilmesi sağlanır. Son olarak kubectl get, describe ve logs komutlarıyla dağıtımın seyri izlenir ve sorunlar giderilir. Bu döngü, her yeni uygulama için yinelenerek alışkanlık haline getirilebilir.


Kubernetes ortamını sağlıklı yönetebilmek için bazı araçlara ve hazırlıklara ihtiyaç duyulur. Öncelikle kubectl komut satırı aracı, kümeyle iletişim kurmanın temel yoludur ve düzenli olarak kullanılır. Helm paket yöneticisi, karmaşık uygulamaların şablonlarla kurulmasını kolaylaştırarak tekrar kullanılabilir yapı sağlar. Yerel geliştirme için Docker Desktop, Minikube veya kind gibi çözümler bulunmaktadır ve bütçeye göre seçilebilir. Görsel izleme için Lens veya k9s gibi arayüzler, küme durumunu kolayca incelemeye imkân verir. İzleme tarafında Prometheus ve Grafana ikilisi, metriklerin toplanması ve görselleştirilmesi konusunda yaygın olarak tercih görür. Kaynakların kodla tanımlanması için Git deposu ve GitOps yaklaşımı, değişikliklerin takip edilebilirliğini artırır. Kümenin yetki denetimi için RBAC kuralları dikkatle yapılandırılmalıdır. Donanım tarafında, geliştirme için en az dört çekirdekli ve sekiz gigabayt belleğe sahip bir makine uygun bir başlangıç noktası sunar. Kaynakların ihtiyaç doğrultusunda planlanması, gereksiz maliyetleri önler.


Kubernetes öğrenmeye yeni başlayan biri için en etkili yaklaşım, kavramları küçük ve uygulanabilir adımlarla geliştirmektir. Önce Docker ile konteyner mantığını kavramak büyük kolaylık sağlar, çünkü Kubernetes bu temel üzerine kurulmuştur. Ardından tek bir pod oluşturup onu silmek gibi basit deneyler, sistemin tepkisini gözlemlemek için değerlidir. Resmi dokümantasyon ve interaktif öğretici platformlar, sistemli bir öğrenme rotası sunar. Her yeni nesneyi YAML ile tanımlamak yerine, önce kubectl run ve create komutlarını kullanmak başlangıçta kolaylaştırıcı olabilir. Küçük bir projeyi, örneğin basit bir web uygulamasını, baştan sona Kubernetes'e taşımak, öğrenilenleri bütünleştirir. Hata ayıklama becerisi, loglara ve event kayıtlarına bakma alışkanlığıyla kademeli olarak gelişir. Topluluk forumları ve yerel kullanıcı grupları, sorular sorup bilgi paylaşmak için değerli ortamlardır. Sabırlı ve düzenli pratikle, Kubernetes temel düzeyinden güvenle ilerleyen bir uzmanlık kazanılabilir.


Kubernetes kümelerini kurarken dikkat edilmesi gereken ilk nokta, kontrol düzlemi bileşenlerinin tek noktaya bağımlı kalmamasıdır. Yetersiz kaynak düğümler, pod planlamasında gecikmelere yol açabilir. Resource limit tanımlanmadığında bir uygulama tüm düğümün belleğini tüketebilir. Gizli bilgiler düz metin olarak saklandığında güvenlik açığı oluşur. NetworkPolicy tanımlanmadan yapılan kurulumlar tüm servislerin birbirine serbestçe erişmesine izin verir. Versiyon farkları ise güncelleme sırasında beklenmedik kesintilere neden olabilir. Bu yüzden aşamalı ve deneme ortamında doğrulanmış geçişler yapmak önemlidir. Ekipler, gözlemlenebilirlik araçlarını kurulum aşamasından itibaren entegre ettiklerinde sorunları çok daha hızlı fark edebilirler. Yedekleme stratejisi olmayan bir küme felaket anında kalıcı kayıplara sürükleyebilir. Ayrıca label ve isimlendirme kurallarının baştan belirlenmemesi, büyüyen ortamlarda yönetimi zorlaştırır. Bu noktaların tümüne dikkat eden ekipler, sistemin kararlı ve öngörülebilir çalışmasını önemli ölçüde sağlar.


Konteyner orkestrasyonu için K8s dışında Swarm ve HashiCorp Nomad gibi alternatifler de bulunmaktadır. Kubernetes geniş topluluk desteği ve esnek yapısıyla öne çıkarken, Docker Swarm kurulum kolaylığı ve basit projelerdeki hızı ile cazip gelebilir. HashiCorp Nomad ise konteynerlerin yanında VM ve çalıştırılabilir iş yüklerini de idare edebilmesi açısından farklılaşır. Karşılaştırma yapılırken öğrenim süreci, community büyüklüğü, scale ihtiyacı ve mevcut altyapı gibi kriterler birlikte göz önüne alınmalıdır. Kubernetes içinde de Helm ile Kustomize arasında seçim yapmak gerekebilir. Helm karmaşık uygulama paketleri için elverişli iken, Kustomize yalın katmanlı yapılandırmalarda kolaylık sağlar. Managed servisler (EKS, Azure AKS, GKE) ise operasyonel yükü büyük oranda azaltırken, kendi kendine kurulum tam kontrol imkanı verir. Her yaklaşımın bütçe ve çeviklik açısından farklı avantajları vardır.


Bir online alışveriş şirketi, kampanya dönemlerinde trafiğin çok katlı çıktığı bir senaryoda Kubernetes'i tercih etmiştir. Sipariş servisi ve payment servisi ayrı kapsüller olarak işletilmiş, HPA ile talep yükseldiğinde otomatik ölçeklenme sağlanmıştır. Başlangıçta yaşanan problem, hazırlık kontrolü tanımlanmadığı için trafiğin henüz hazır olmayan pod'lara yönlendirilmesi olmuştur. Ekip, kontrol yapılandırmasını iyileştirerek hata oranını önemli ölçüde azaltmıştır. Bir analitik firması ise grafik işlemci gerektiren iş yüklerini node selector ve lekeleme ve tolerans mekanizmalarıyla ayırarak maliyetlerini kontrol altına almıştır. Bu örnekler, doğru yapılandırmanın gerçek faydalar sağladığını net biçimde göstermektedir. Buna benzer şekilde bir yayın platformu, günlük toplu işleri CronJob kaynakları ile yönetip insan katılımını azaltmıştır. Gerçek vakalar göstermektedir ki planlama aşamasında alınan basit kararlar ileride büyük sonuçlar doğurabilmektedir.


Kubernetes kullanımı uzun vadede organizasyon yapısını, süreçleri ve harcama modelini değiştirir. Declarative yapılandırma ve Git tabanlı dağıtım yaklaşımı, altyapının sürüm kontrolünde izlenmesini sağlayarak denetlenebilirliği artırır. Ancak cluster sayısı arttıkça yönetim karmaşıklığı da büyür. Sürdürülebilirlik açısından kaynak kullanımının periyodik olarak gözden geçirilmesi önemlidir. kullanılmayan kaynaklar cloud faturasını fazladan yükseltir. Güç verimliliği de kurumsal sorumluluk kapsamında değerlendirilmelidir. Eğitim ve dokümantasyon yatırımı yapmayan kadrolar zamanla bilgi kaybı yaşayabilir. Sürüm yaşam döngüsünün takip edilmesi de emniyet açısından kritik öneme sahiptir. Düzenli bakım planlarıyla sistemin ömrü sürdürülebilir hale getirilebilir.


İleri seviye kurumsal ortamlarda servis ağı yapıları, Istio hizmeti veya Linkerd aracı gibi çözümlerle trafik kontrolü ve gözlemlenebilirlik geliştirilebilir. Operatör kalıbıyla database gibi durumlu servisler otomatikleştirilebilir. Policy engine olarak OPA Gatekeeper kullanmak, emniyet standartlarının zorunlu hale getirilmesini sağlar. Özetle Kubernetes, doğru planlandığında ölçeklenebilir ve sağlam altyapılar oluşturmayı mümkün kılar. Fakat araç yalnız bir panzehir değildir; işleyiş, insan ve araç üçgeninin uyumlu şekilde kurulması gerekir. Adım adım başlayıp ölçümleyerek ilerleyen organizasyonlar en kalıcı sonuçları alır.


Kubernetes Nedir


Kubernetes, konteyner uygulamaların yayınlanmasını ve kontrolünü otomatikleştiren açık kaynaklı bir sistem olarak öne çıkar. Bir geliştirici grubu birden fazla servisi çalıştırdığında, her bir konteynerin hangi düğümde çalışacağını elle belirlemek hem zaman alır hem de hataya açıktır. Kubernetes bu noktada devralır ve kaynakları dengeli şekilde dağıtır. Temel yapı taşı olan Pod, bir veya birden fazla konteyneri aynı ağ ve depolama alanını paylaşarak bir arada çalıştırır. Deployment nesneleri ise istenen Pod sayısını tanımlar ve bir Pod çöktüğünde yerine yenisini kendiliğinden oluşturur. Servisler sayesinde Pod'lar arasında sabit bir iletişim kurulur. Bu yapı sayesinde sistemler genişleyebilir ve sürekli çalışma sağlanır.


Sık Düşülen Tuzaklar


Kubernetes'e ilk kez geçen ekipler çoğunlukla kaynak limitlerini atlamakta ve bunun sonucunda bir Pod'un tüm düğümün kaynaklarını tüketmesine izin vermektedir. Bir diğer sık görülen hata, canlılık ve hazırlık kontrollerini yapılandırmamaktır; bu durumda bozuk bir uygulama trafik almaya devam eder. Etiket ve seçici tasarımı konusunda dağınık davranmak da servislerin hiçbir Pod'a bağlanamamasına yol açabilir. Gizli bilgileri şifrelenmemiş ConfigMap içinde saklamak ise güvenlik açısından büyük bir risk oluşturur. Son olarak, image tag'ler yerine latest etiketini kullanmak, sürümlerin tekrarlanabilirliğini ortadan kaldırır ve sorunların izini sürmeyi zorlaştırır.


Deneyimli Önerileri

Deneyimli operasyon ekipleri her uygulama için minimum kaynak ihtiyacını gerçekçi biçimde belirlemeyi ve bunu periyodik olarak metriklerle doğrulamayı önerir. Horizontal Pod Autoscaler kullanarak yük arttığında Pod sayısının otomatik olarak yükselmesini sağlamak, hem maliyeti korumanın etkili bir yoludur. Pod Disruption Budget tanımlayarak bakım çalışmaları sırasında kritik servislerin yeterli sayıda kopyasının ayakta kalmasını garanti altına almak mümkündür. Namespace'leri ortam ve ekip bazında ayırmak, erişimlerin kontrolünü basitleştirir. Ayrıca Helm veya Kustomize gibi araçlarla yapılandırmaları sürümlendirmek, altyapıyı kod olarak tutmayı mümkün kılar.


Bütçe Planlaması


Kubernetes kümesinin harcaması yalnızca sunucu kiralarından ibaret değildir; yönetilen kontrol düzlemi, depolama, ağ trafiği ve izleme araçları da toplam bütçeye dahil olur. Bulut sağlayıcısında çalışan bir küme kullanılmayan düğümler nedeniyle beklenmedik harcamaya neden olabilir. Bu nedenle düğüm havuzlarını iş yüküne göre ayarlamak ve küme otomatik ölçekleyicisini devreye almak önemlidir. Spot veya preemptible sunucular geliştirme ortamları ve toplu işler için büyük tasarruf sağlayabilir. Ayrıca maliyet dağılımı yaparak hangi ekibin veya servisin ne kadar kullandığını izlemek, bütçe disiplinini destekler.


Takvim Odaklı Yaklaşım


Birçok kurum için trafik yoğunluğu yıl içinde sabit kalmaz; kampanya dönemleri, tatil sezonları veya fatura son günleri gibi zamanlarda kullanıcı sayısı keskin biçimde artabilir. Bu tür yoğun aylara önceden hazırlanmak için kapasite planlamasını sezonlara göre yapmak gerekir. Yoğunluk beklenirken Pod sayısını ve düğüm kapasitesini artırmak, ani yükler karşısında uygulamayı koruyabilir. Öte yandan gece saatlerinde veya hafta sonları kullanımın düştüğü sistemlerde geliştirme kümelerini küçültmek veya zamanlanmış olarak kapatmak kayda değer bir tasarruf sağlar. Bakım pencerelerini düşük trafikli saatlere yerleştirmek de kesinti riskini hafifletir.


Merak Edilenler

Geliştiricilerin en çok merak ettiği konulardan biri, Kubernetes'in basit projeler için gerekli olup olmadığıdır; cevap genellikle projenin büyüklüğüne ve ekibin hazırlığına bağlıdır. Bir diğer tekrar eden soru, Docker Swarm ile Kubernetes arasındaki ayrımın ne olduğudur; Kubernetes daha geniş bir ekosisteme ve yaygın kullanıma sahiptir. Öğrenme eğrisinin zorlu olduğu doğrudur, fakat resmi dokümantasyon, etkileşimli eğitimler ve yerel geliştirme için kind veya minikube gibi araçlar ilk adımları kolaylaştırır. Son olarak, mevcut bir uygulamayı Kubernetes'e geçirmenin süresi uygulamaya göre değişir; konteynerleştirme ve yapılandırma hazırlığı genellikle en çok zaman alan kısımdır.

Yanıtla
levent.flame (Member)
10-28-2026, 10:04 AM
Kubernetes Rollback İşlemi Nasıl Yapılır ile ilgili super bir mukayese olmus, eline saglik.
Yanıtla
evren_ucar (Spor Tutkunu)
10-28-2026, 10:33 AM
Emegi belli. Konuyu takip ediyorum.
Yanıtla
kartal_ekrem (Eski Uye)
10-28-2026, 11:16 AM
Bu konuda daha once hic bu kadar super bir dokuman okumamistim.
Yanıtla
celal67 (Member)
10-28-2026, 12:08 PM
Sahiden guzel bir paylasim, herkese tavsiye ederim.
Yanıtla

Forumdan Konular