Docker, yerel bir makinede veya bulut platformunda çalışan bir Docker konteynır yapısını dağıtarak çözümler sunan bir araçtır. Bir kümedeki farklı Docker ana bilgisayarlarına tahsis ederek yüksek performansı artırmak için Docker Swarm’ı kullanabilirsiniz. Konteynır özelliği, yüksek kullanılabilirlik için önemli bir özelliktir. Kullanıcının, konteynır yöneticisi olarak bilinen alanda konteynırları yönetmesini sağlar. Bu ayrıca kullanıcının tek bir uygulama için konteyner örneği sayısını arttırmasını sağlar. Bu durumda, harici bir keşif servisine ihtiyaç duymayan Docker 19.03 ‘ü kullanacağız, çünkü bu amaçla dahili bir bellek anahtar-değer deposuyla birlikte geliyor. Docker Swarm kümesini Ubuntu 18.04 sürümünde kurmaya çalışacağız. Başlamak için ihtiyacınız olacak: Docker ve Ubuntu bilgisi 186.04 Docker yüklü olan en az iki makine. Çalışan makine ve Yönetici makine üzerinde yapılandırılmış bir IP adresi. Docker Clusters iki ana bölümden oluşan makinelere bir göz atalım:

Yönetici Makine(Manager): Konteynır durumunun korunması, hizmetlerin hazırlanması ve sürü modu bitiş noktalarının servisi (HTTP API) dahil olmak üzere kümelerin yönetimi ile ilgilenirler. Yönetici Konteynır, Swarm kümesi hakkında kritik verileri depolayan önemli bir özellik.

Çalışan Makineler(Worker): Bunlar konteynırları yürütür. Zamanlama kararlarında yer almazlar. Bir İşçi makinesi, birden fazla Yönetici makineye sahip olmamalıdır. Sonuncusu bakım altındayken bir çalışan makineyi bir Yönetici makineye yükseltmek mümkündür.

Daha önceki makalemizde docker kurulumunu anlatmıştık o nedenle direk swarm kurulumuna geçiyoruz.

Aşağıdaki komutu manager olarak çalışacak makinemizde veriyoruz. Çift ethernet veya ip olması ihtimaline karşın spesifik adres tanımladım.

$ docker swarm init --advertise-addr <MANAGER-IP>

Not: Eğer Docker Masaüstü Windows veya Mac sürümü kullanıyorsanız sadece docker swarm init komutunu arguman verden çalıştırmanı yeterlidir.--advertise-addr parametresine ihtiyacınız yok. Daha fazla bilgi için Use Docker Desktop or Mac or Docker Desktop for Windows  resmi sitesini ziyaret edebilirsiniz.

$ docker swarm init --advertise-addr 192.168.99.100
Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    192.168.99.100:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Bu şekilde swarm modunu init ederek çalıştırmış olduk manager makinemizde.

$ docker info

Containers: 2
Running: 0
Paused: 0
Stopped: 2
  ...snip...
Swarm: active
  NodeID: dxn1zf6l61qsb1josjja83ngz
  Is Manager: true
  Managers: 1
  Nodes: 1
  ...snip...

Artık swarm modumuz olduğu için buna dair komutları da kullanabiliriz.

$ docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
dxn1zf6l61qsb1josjja83ngz *  manager1  Ready   Active        Leader

Manager makinemiz ayakta ve aktif

$ docker swarm join-token worker

Manager makinede vereceğimiz bu komutla worker tokeni alarak worker makinelerimizi join ediyoruz.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    192.168.99.100:2377

Worker makineye geçerek yukarıdaki komutu çalıştırıyoruz.

docker swarm join \
  --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
  192.168.99.100:2377

This node joined a swarm as a worker.
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
03g1y59jwfg7cf99w4lt0f662    worker2   Ready   Active
9j68exjopxe7wfl6yuxml7a7j    worker1   Ready   Active
dxn1zf6l61qsb1josjja83ngz *  manager1  Ready   Active        Leader

Evet worker makinelerimiz de swarm içine join oldu.

Share: