- برای این منظور ۳ سرور در میگیریم.
|
1 2 3 |
docker01 172.16.112.169 docker02 172.16.112.170 docker03 172.16.112.171 |
- سرور اول به عنوان Master و دو سرور دیگر به عنوان Worker فعالیت خواهند کرد.
- عیتا کد گفته شده در بالا را به پروندهی زیر اضافه نمایید.
|
1 |
# vim /etc/hosts |
- بر روی هر ۳ تا سرور محصول docker-ce را نصب و راهاندازی نمایید.
- بر روی سرور اول که به عنوان Master شناخته میشود دستور زیر را به منظور راهاندازی کلاستر اجرا نمایید.
|
1 |
# docker swarm init --advertise-addr 172.16.112.169 |
- در ادامه در سرورهای Worker که در اینجا سرور دوم و سوم میشود ، کد زیر را اجرا نمایید.
|
1 |
# docker swarm join --token <span style="color: #ff0000;"><strong>SWMTKN-1-13xo8...</strong></span> 172.16.112.169:2377 |
- نکته : عبارت رنگی شده توکن مربوط به کلاستر بوده که باید متناسب با سیستم تعویض شود.
- در نهایت به منظور مشاهدهی تمام Node ها و جزییات مربوط به آنها، از دستور زیر استفاده کنید.
|
1 |
# docker node ls |
|
1 2 3 4 |
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 ایجاد کرد. به عنوان مثال:
|
1 |
# docker service create --name web-server --publish 8080:80 nginx:1.13-alpine |
- به منظور مشاهدهی سرویسی که ایجاد شده است یا به منظور مشاهدهی تمام سرویسها به صورت زیر عمل نمایید.
|
1 |
# docker service ls |
- در سناریو این مستند ۳ سرور داشتیم ، حال نیاز است برای کانتینری که ساختیم قابلیت Replication در نظر بگیریم.
|
1 |
# docker service scale web-server=3 |
- با انجام عمل بالا ، پورت ۸۰ هر ۳ سرور اشاره به Application ما خواهند کرد. (صفحهی پیشفرض Nginx باز خواهد شد.)
- تست شده بر روی Ubuntu 20.04