- برای این منظور ۳ سرور در میگیریم.
docker01 172.16.112.169
docker02 172.16.112.170
docker03 172.16.112.171
- سرور اول به عنوان Master و دو سرور دیگر به عنوان Worker فعالیت خواهند کرد.
- عیتا کد گفته شده در بالا را به پروندهی زیر اضافه نمایید.
# vim /etc/hosts
- بر روی هر ۳ تا سرور محصول docker-ce را نصب و راهاندازی نمایید.
- بر روی سرور اول که به عنوان Master شناخته میشود دستور زیر را به منظور راهاندازی کلاستر اجرا نمایید.
# docker swarm init --advertise-addr 172.16.112.169
- در ادامه در سرورهای Worker که در اینجا سرور دوم و سوم میشود ، کد زیر را اجرا نمایید.
# docker swarm join --token SWMTKN-1-13xo8... 172.16.112.169:2377
- نکته : عبارت رنگی شده توکن مربوط به کلاستر بوده که باید متناسب با سیستم تعویض شود.
- در نهایت به منظور مشاهدهی تمام Node ها و جزییات مربوط به آنها، از دستور زیر استفاده کنید.
# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
w4povdqvzhlrr9m26s7htnn7h * docker01 Ready Active Leader 20.10.8
i4nio4f3ypcibmbnsttbe7dy8 docker02 Ready Active 20.10.8
mdazszrlm050kz5mq98omv4nf docker03 Ready Active 20.10.8
- نکته : کد بالا تنها در سرورهای Master اجرا میشود.
- حال به منظور آزمایش میتوان یک Container از روی Image ربوط به Application ایجاد کرد. به عنوان مثال:
# docker service create --name web-server --publish 8080:80 nginx:1.13-alpine
- به منظور مشاهدهی سرویسی که ایجاد شده است یا به منظور مشاهدهی تمام سرویسها به صورت زیر عمل نمایید.
# docker service ls
- در سناریو این مستند ۳ سرور داشتیم ، حال نیاز است برای کانتینری که ساختیم قابلیت Replication در نظر بگیریم.
# docker service scale web-server=3
- با انجام عمل بالا ، پورت ۸۰ هر ۳ سرور اشاره به Application ما خواهند کرد. (صفحهی پیشفرض Nginx باز خواهد شد.)
- تست شده بر روی Ubuntu 20.04