Docker, konteynerleştirilmiş uygulamaları geliştirmek, dağıtmak ve yönetmek için yaygın olarak kullanılan bir platformdur. Docker Swarm, Docker’ın yerleşik orkestrasyon aracıdır ve birden fazla Docker hostunu bir araya getirerek yüksek verimlilik ve kullanılabilirlik sağlar. Docker Swarm, konteynerlerin yatay olarak ölçeklenmesine, yük dengelemesine ve uygulama yönetimine olanak tanır. Bu bağlamda, bir Docker Swarm servisi oluşturmak, uygulamanın birden fazla örneğinin aynı anda çalışmasına imkan tanır.
Docker Swarm Nedir?
Docker Swarm, birden fazla Docker daemonunun (CI/CD süreçlerinin temel bileşenleri) bir araya gelerek, bu daemonları tek bir sanal Docker host gibi yönetmeyi sağlar. Swarm, kullanıcıların dağıtık uygulamalarını kolayca yönetebilmelerine olanak tanır. Olumsuz durumlarda, sistem kendini iyileştirmek için otomatik olarak çalışmaya devam eder. Swarm, uygulama hizmetlerinin çalıştığı bir yöneticidir ve uygulama ölçeklendirmesini, güncellemelerini ve yük dengelemesini yönetir.
Docker Swarm Kurulumu
Docker Swarm kullanmak için öncelikle bir Docker ortamının kurulu olması gerekir. Bir Docker Swarm ortamı kurmak için öncelikle yönetici (manager) düğümleri belirlenir. Bunun için öncelikle Docker’ı yüklemek gerekir. Oluşturulacak olan Swarm üzerinde bir yönetici düğüm oluşturmak için aşağıdaki komut kullanılır:
“`
docker swarm init
“`
Bu komut, mevcut Docker hostunu yönetici düğüm olarak atar ve diğer düğümlerin katılıp katılamayacağını belirten bir join token verir.
Servis Oluşturma: docker service create
Docker Swarm üzerinde bir servis oluşturmak için “docker service create” komutu kullanılır. Bu komut, belirli bir görüntüyü (image) temel alarak, istenen sayıda konteyner örneği oluşturur. Temel kullanım şekli şu şekildedir:
“`
docker service create [OPTIONS] IMAGE [COMMAND] [ARG…]
“`
OPTIONS kısmı, çeşitli parametreleri belirtmek için kullanılır. Örnek parametreler şunlardır:
– `–name`: Servisin adını belirler.
– `–replicas`: Oluşturulacak olan konteyner sayısını belirler.
– `–publish`: Servisin dinleme yapacağı bağlantı noktalarını belirler.
– `–env`: Ortam değişkenlerini tanımlamak için kullanılır.
Örnek bir kullanım:
“`
docker service create –name my_web_service –replicas 3 –publish 80:80 nginx
“`
Yukarıdaki komut, “nginx” görüntüsünden 3 adet örnek oluşturan “my_web_service” isimli bir servis oluşturur ve servisin 80 portunu dışarıya açar.
Servis Durumunu Gözlemleme
Servis oluşturulduktan sonra, servislerin durumunu kontrol etmek için “docker service ls” komutu kullanılabilir. Bu komut, mevcut servislerin durumunu ve ilgili bilgileri gösterir:
“`
docker service ls
“`
Ayrıca, belirli bir servisin durumu hakkında daha fazla bilgi almak için “docker service ps” komutu kullanılabilir. Aşağıdaki gibi bir kullanım gerçekleştirilerek belirli bir servisin detayları gözlemlenebilir:
“`
docker service ps my_web_service
“`
Bu komut, “my_web_service” isimli servise dair tüm görevleri (tasks) listeler ve her birinin durumunu gösterir.
Servis Güncelleme
Oluşturulan servis ihtiyaca göre güncellenebilir. “docker service update” komutu, servisi güncelleyerek yeni ayarların uygulanmasını sağlar. Örneğin, servisin replikalarını artırmak için aşağıdaki komut kullanılabilir:
“`
docker service update –replicas 5 my_web_service
“`
Bu komut, “my_web_service” isimli servisin replikasını 5’e yükseltir.
Servis Silme
Artık ihtiyaç duyulmayan bir servis, “docker service rm” komutu kullanılarak silinebilir. Aşağıdaki şekilde bir kullanım ile servis kaldırılabilir:
“`
docker service rm my_web_service
“`
Bu komut, “my_web_service” servisinin tamamını kaldıracaktır.
Yük Dengeleme
Docker Swarm, servisler arasında otomatik yük dengelemesi yapmaktadır. Kullanıcı, dışardan gelen isteklerin en iyi performansa sahip konteynerlere yönlendirilmesini sağlayabilir. Herhangi bir ağ isteği, ilgili hizmetin tüm örneklerine yönlendirilirken, Docker Swarm bu isteği nasıl yönlendireceğini kendi bünyesinde yönetir.
Sonuç
Docker Swarm servisi oluşturmak, ilgili görüntüyü temel alarak hızlıca ölçeklenebilir uygulamalar geliştirmeye olanak tanır. Kullanıcılar, “docker service create” komutu ile bu süreci başlatarak, servis durumunu gözlemlemek, servisleri güncellemek ve gerektiğinde silmek mümkündür. Docker Swarm, uygulamaların yönetimini kolaylaştırarak, sistemin güvenilirliğini artırır ve yüksek erişilebilirlik sağlar.