İlk adım, Kubernetes Deployment nesnesinde güncel sürüm ile yeni sürüm arasında farklar olacak şekilde iki farklı versiyon hazırlamaktır. Bu aşamada, [spec] bölümündeki [template] kısmına yeni sürümün konteyner imajını tanımlayarak başlıyoruz. Sonra, [labels] ve [selectors] alanlarını doğru şekilde yapılandırmak, sürüm takibinde kritik öneme sahiptir.
Canary dağıtımın en önemli noktası, trafik yönlendirmedir. Bu, genellikle [Istio], [Linkerd] veya [Kubernetes Ingress] gibi servis mesh teknolojileri kullanılarak sağlanır. Örneğin, Istio’da [VirtualService] nesnesiyle, yeni sürüme gelen trafikin %10-20’sini yönlendirecek şekilde ayarlamalar yapılabilir. Bu sayede, yeni API sürümünü test ederken, kullanıcı deneyimi ve performans ölçümleri detaylıca yapılabilir.
Hata veya performans sorunları tespit edilirse, dağıtım hemen geri alınabilir veya trafik oranı azaltılabilir. Ayrıca, Canary sürümdeki hataların otomatik tespiti ve uyarı sistemi oluşturmak, sürecin güvenliğini artırır.
Son olarak, Canary Release tamamlandıktan sonra, yeni sürüm kalıcı hale getirilir ve eski sürüm tamamen kaldırılır. Bu metodoloji, özellikle yüksek hacimli e-ticaret platformlarında, sistem kesintisini minimize ederek sürekli güncellemeye imkan sağlar.
Sizler, Kubernetes Canary Release uygulamalarında karşılaştığınız en büyük zorluklar veya başarı hikayelerinizi paylaşmak ister misiniz?
