Docker Swarm'a Giriş
Docker Swarm, mikro hizmet mimarileri için kullanılan, Docker konteynerlerini çoklu sunucularda orkestra eden bir platformdur. Eğer DevOps dünyasına girmeye karar verdiyseniz ve uygulamalarınızı çoklu makinelerde kolayca çalıştırmak istiyorsanız, Docker Swarm sizin için mükemmel bir çözüm olabilir. Hem öğrenmesi kolay hem de güçlü bir platformdur. Ama nasıl başlayacaksınız? Hadi, adım adım Docker Swarm’ı nasıl yapılandırabileceğinizi keşfedelim.
Docker Swarm Nedir ve Neden Kullanılır?
Docker Swarm, bir grup Docker hostunu birleştirip bunları tek bir sanal makine gibi yönetmenizi sağlar. Bu sayede, uygulamalarınızı ölçeklendirebilir, yüksek erişilebilirlik sağlarsınız ve yönetimi çok daha kolay hale getirirsiniz. Swarm, çoklu sunucularda çalışan uygulamalara kolayca müdahale etmenizi sağlar ve Docker’ın sunduğu avantajlardan faydalanmanıza imkan verir. Kubernetes'e kıyasla daha basit yapısı ile Docker Swarm genellikle küçük ve orta ölçekli projelerde tercih edilir.
Docker Swarm Yapılandırmasına Başlarken
İlk adım, Docker Swarm’ı kurmak ve doğru bir şekilde yapılandırmaktır. İşte başlamak için ihtiyacınız olan şeyler:
1. Docker'ı Kurun: Docker'ı makinelerinize kurarak başlayın. Docker Swarm, Docker'ın bir özelliği olduğundan, her node’un (sunucu) Docker yüklü olması gerekiyor. Docker’ı kurmak oldukça basittir.
2. Docker Swarm'ı Başlatın: Şimdi Swarm’ı başlatma zamanı. Eğer yeni bir Swarm başlatacaksanız, bir node’u yöneticiniz olarak belirlemeniz gerekecek.
docker swarm init
Bu komut, Docker Swarm’ı başlatır ve yöneticilik görevini üstlenen node’u belirler. Başarıyla başlattığınızda, komut çıktısında, diğer sunucuların bu swarm’a katılması için kullanabileceğiniz bir komut görmelisiniz.
3. Diğer Makineleri Swarm'a Katın: Eğer başka makineler de bu swarm’a dahil olacaksa, yöneticiden aldığınız komutla bu makinelerde swarm'ı başlatabilirsiniz.
docker swarm join --token [token] [manager-ip]:2377
Bu komut, diğer makineleri swarm’a dahil eder. Burada [token] ve [manager-ip] komut çıktısından alınan değerlerdir.
Docker Swarm’da Servisler ve Dağıtım
Docker Swarm’ı kurduktan sonra sıra servisleri yönetmeye geliyor. Docker Swarm’ı kullanarak dağıtım yapmak çok kolaydır. Herhangi bir servis oluşturmak için şu komutu kullanabilirsiniz:
docker service create --name my_app --replicas 3 my_image
Burada “my_app” sizin uygulamanızın ismi, “my_image” ise kullanmak istediğiniz Docker imajıdır. Bu komut, belirtilen imajla 3 adet replica oluşturur.
Swarm’ın Ölçeklenmesi
Swarm, uygulamanızın yükünü artırarak daha fazla replica çalıştırmanızı sağlar. Örneğin, bir servisi daha fazla replica ile çalıştırmak için şu komutu kullanabilirsiniz:
docker service scale my_app=5
Bu komutla, “my_app” servisinin replica sayısını 5’e çıkarabilirsiniz. Böylece uygulamanız daha fazla kullanıcıya hizmet verebilir.
Yük Dengeleme ve Sağlık Kontrolleri
Docker Swarm, yük dengeleme ve sağlık kontrollerini otomatik olarak yapar. Bir servis ölürse, Docker Swarm bu servisi başka bir node’da tekrar başlatır. Ancak bazen uygulamanızda özel bir durum olursa, sağlık kontrolünü özelleştirmek isteyebilirsiniz. Sağlık kontrolünü şu şekilde ekleyebilirsiniz:
docker service update --health-cmd="curl --fail http://localhost:8080/health || exit 1" --health-interval=10s --health-retries=3 my_app
Bu komut, her 10 saniyede bir “my_app” servisini kontrol eder ve eğer servis sağlıksızsa, belirtilen sayıda tekrar başarısız olursa servisi yeniden başlatır.
Swarm’da Güncellemeler ve Rollback
Uygulamalarınızı Docker Swarm ile güncellemek çok kolaydır. Ancak bazen bir güncelleme sorun çıkarabilir, bu durumda eski sürüme dönmek isteyebilirsiniz. Güncelleme işlemi şu şekilde yapılır:
docker service update --image my_image:v2 my_app
Eğer sorun çıkarsa, şu komutla eski sürüme dönebilirsiniz:
docker service rollback my_app
Bu, servisinizin son çalıştırdığı sürüme geri dönmesini sağlar.
Docker Swarm ve Yüksek Erişilebilirlik
Docker Swarm’ın sunduğu en büyük avantajlardan biri, yüksek erişilebilirliktir. Swarm’daki herhangi bir node arızalandığında, Docker otomatik olarak başka bir node üzerinde servisi yeniden başlatır. Bu, kullanıcılarınızın uygulamanıza her zaman erişebilmesini sağlar. Böylece uygulamalarınız her zaman aktif kalır.
Sonuç
Docker Swarm ile uygulama orkestrasyonu, Docker dünyasında en hızlı ve kolay çözüm sağlayan araçlardan biridir. Uygulamanızı yönetmek, güncellemek ve ölçeklendirmek sadece birkaç komutla halledilebilir. Swarm, Docker ile çalışanların daha verimli ve esnek bir şekilde uygulama dağıtımı yapmalarına olanak tanır. Eğer mikro hizmet mimarisine geçiş yapmak istiyorsanız, Docker Swarm’a kesinlikle göz atmalısınız.