Docker Swarm Nedir?
Docker Swarm, Docker'ın bir container orkestrasyon aracıdır. Yani, birden fazla Docker host'unu tek bir sanal sunucu gibi yönetmenizi sağlar. Bu sayede, her şeyin düzgün bir şekilde çalışmasını sağlamak için çeşitli Docker container'larını birleştirip, dağıtabilir, ölçeklendirebilir ve yönetebilirsiniz.
Docker Swarm ile, yalnızca tek bir node’da çalışan container’larınızı bir cluster’a dönüştürüp, tüm cluster’ı yönetebilirsiniz. Peki, Docker Swarm kurulumuna nasıl başlarız?
Docker Swarm Kurulumu: Adım Adım
Docker Swarm kurulumu oldukça basittir. Burada, Docker Swarm’ı birden fazla node’a (yani bilgisayara) kuracağız. Her node, bir Docker host olacak ve bu host’lar birbiriyle iletişim kuracak.
Adım 1: Docker’ın Yüklenmesi
İlk adım, Docker’ı sisteminize yüklemektir. Docker’ı kurmak için terminali açıp aşağıdaki komutu çalıştırabilirsiniz:
sudo apt-get update
sudo apt-get install docker-ce
Bu komut Docker’ı sisteminize kuracaktır. Eğer Ubuntu kullanıyorsanız, bu adım sizin için yeterlidir.
Adım 2: Docker Swarm Başlatma
Docker’ı kurduktan sonra, artık Swarm modunu başlatabiliriz. Swarm, bir Docker host’unda başlatılır ve bu host, "Swarm Manager" olarak görev yapar. Swarm’ı başlatmak için şu komutu kullanabilirsiniz:
docker swarm init
Bu komut, Docker Swarm’ı başlatacak ve bu makineyi bir yönetici (manager) node olarak belirleyecektir. Eğer birkaç node kullanacaksanız, "join token" almanız gerekecek. Swarm Manager’ın çıktısı aşağıdaki gibi olacak:
docker swarm join --token SWMTKN-1-5lxswckf9uvz7lq37fp78hjfyyhgo-3ckg4kxpns9on8z6b84dqeexx 192.168.0.1:2377
Bu token, diğer node’lar için gereklidir. Şimdi diğer makinelerde Swarm’a katılacakları bir komut verebiliriz.
Adım 3: Swarm’a Node Ekleme
Başka bir makineyi Swarm’a eklemek için, daha önce aldığınız token’ı kullanarak bu komutu çalıştırabilirsiniz:
docker swarm join --token SWMTKN-1-5lxswckf9uvz7lq37fp78hjfyyhgo-3ckg4kxpns9on8z6b84dqeexx 192.168.0.1:2377
Bu işlem tamamlandığında, o makine de Swarm’a katılacak ve Docker container’larını aynı ağda yönetebileceğiz.
Adım 4: Swarm Durumunu Kontrol Etme
Şimdi her şeyin doğru çalıştığından emin olalım. Docker Swarm’ı başlatıp node’ları ekledikten sonra, şu komutla Swarm cluster’ınızın durumunu kontrol edebilirsiniz:
docker node ls
Bu komut, tüm node’ları listeleyecek ve her node’un durumunu (aktif, offline, vb.) gösterecektir.
Adım 5: Swarm’da Servis Oluşturma ve Yönetme
Docker Swarm’ı kurduktan sonra, artık container’larınızı dağıtıp yönlendirebilirsiniz. Örneğin, bir web uygulaması çalıştırmak istiyorsanız, aşağıdaki komutu kullanarak bir servis oluşturabilirsiniz:
docker service create --name webapp -p 80:80 nginx
Bu komut, Nginx’ı web uygulamanız olarak başlatacak ve 80 numaralı portu dış dünyaya açacaktır.
Adım 6: Servis Ölçeklendirme
Docker Swarm ile servislerinizi ölçeklendirmek oldukça kolaydır. Eğer daha fazla instance (örnek) çalıştırmak isterseniz, şu komutu kullanabilirsiniz:
docker service scale webapp=5
Bu komut, "webapp" servisini 5 farklı node’da çalışacak şekilde ölçeklendirecektir.
Adım 7: Swarm’daki Servisleri Güncelleme
Bir servisinizi güncellemek için, aşağıdaki komutu kullanabilirsiniz. Bu örnekte, Nginx’ın yeni bir sürümünü dağıtıyoruz:
docker service update --image nginx:latest webapp
Bu komut, mevcut servisi yeni Nginx sürümüyle güncelleyecektir.
Docker Swarm Yönetimi: Günlük Bakım ve İpuçları
Docker Swarm’ı yönetmek, birkaç önemli adımı ve bakım gereksinimini içerir. İşte bazı ipuçları:
- Yedekleme Yapın: Swarm Manager node’larının verilerini düzenli aralıklarla yedekleyin. Eğer bir Manager node’u çökerse, diğer node’lar işlevini sürdürebilir, ancak veriler kaybolabilir.
- Monitor Edin: Docker Swarm cluster’ınızdaki her bir node ve servisi izlemek için monitoring araçları kullanın. Docker, Swarm için çeşitli logging ve monitoring araçları sunmaktadır.
- Cluster Büyüklüğü: Docker Swarm, genellikle küçük ve orta ölçekli uygulamalar için uygundur. Büyük projelerde Kubernetes gibi daha gelişmiş orkestrasyon araçlarını tercih edebilirsiniz.
Docker Swarm, büyük projelerde container’ları yönetmek için güçlü bir araçtır. Kolay kurulumu ve güçlü yönetim özellikleri ile Docker Swarm, tüm yazılım geliştiricilerinin hayatını kolaylaştırabilir. Şimdi, adım adım Docker Swarm’ı kurarak container’larınızı verimli bir şekilde yönetmeye başlayabilirsiniz!