در دنیای Docker زمانی که تعداد container ها زیاد شوند نیاز به ابزارهایی جهت کنترل، مدیریت و Deploy کردن آنها احساس می شود. برای این منظور ابزارهای گوناگونی وجود دارد مانند Kubernetes, Docker Swarm و دیگر ابزارها. در این مطلب قصد داریم تا Docker Swarm را بررسی، نصب و پیکربندی کنیم.
Docker Swarm در واقع یک راهکار native clustering می باشد که گروهی از Docker host ها را به صورت یک logical virtual server ارائه می نماید. Swarm این اطمینان را می دهد تا availability و high performance سرویس شما (application) را با توزیع آنها بر روی Docker host ها در Cluster فراهم کند. همچنین با استفاده از Docker swarm شما می توانید application خود را به صورت horizontally بر روی کلاستر Scale کنید.
در گذشته Docker swarm یک ابزار جداگانه بود اما پس از انتشار نسخه ی Docker 1.12 به صورت یکپارچه با Docker engine ارائه می شود. بنابراین تنها کافیست تا Docker engine را بر روی تمامی Node ها (Manager و Worker Node ها) نصب کنید. برای اطلاعات بیشتر در مورد Swarm و آشنایی با ویژگی های آن پیشنهاد می شود تا مستندات رسمی آن را مطالعه کنید:
https://docs.docker.com/engine/swarm/
در این مطلب قصد داریم تا Docker Swarm را بر روی CentOS 7.x نصب کنیم و یک manager node و 2 تا Worker node خواهیم داشت. Hostname و IP سرورها به صورت زیر می باشند:
docker-swarm-manager01 192.168.122.245
docker-swarm-worker01 192.168.122.162
docker-swarm-worker02 192.168.122.59
برای شروع کافیست تا Docker engine را بر روی همه ی Node ها نصب کنید که در اینجا ما از نسخه ی Docker-CE استفاده می کنیم. جهت اطلاعات بیشتر در مورد نصب Docker کافیست تا مطلب «آموزش نصب Docker بر روی فدورا و CentOS» را مطالعه کنید.
نصب Docker-CE بر روی همه ی Node ها :
# yum install -y yum-utils
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#yum-config-manager --enable docker-ce-edge
#yum install docker-ce
پیکربندی Firewall :
اکنون پورت های مورد نیاز برای swarm cluster را بر روی Firewalld باز کنید :
# firewall-cmd --permanent --add-port={2376,2377,7946}/tcp
# firewall-cmd --permanent --add-port={7946,4789}/udp
# firewall-cmd --reload
کاربرد پورت های گفته شده به شرح زیر می باشند:
اکنون سرویس docker را start و enable کنید :
#systemctl start docker
#systemctl enable docker
اگر قبل از تنظیمات Firewall سرویس داکر start بود کافیست تا یک بار آن را restart کنید :
#systemctl restart docker
ادامه دارد …