ایجاد یک Darmer Swarm در Alpine Linux 3.9.0

معرفی

این راهنما نحوه ایجاد و پیکربندی swarm Docker را با استفاده از چندین سرور Alpine Linux 3.9.0 و Portainer به شما نشان می دهد. لطفاً توجه داشته باشید که Vultr یک برنامه داکر یک کلیک را ارائه می دهد که در حال حاضر از CentOS 7 x64 و Ubuntu 16.04 x64 پشتیبانی می کند.

پیش نیازها

برای شروع ، حداقل به دو سرور VC2 که Alpine Linux 3.9.0 را اجرا می کنند ، نیاز دارید. در میان Docker swarm شما ، یکی از این سرورها به عنوان یک ارتباط manager node- با شبکه های خارجی و واگذاری شغل به گره های کارگر عمل می کند. سرور دیگر بعنوان یک worker nodeوظیفه اجرایی که توسط گره مدیر به آن واگذار شده است ، عمل خواهد کرد.

توجه داشته باشید که اگر برنامه شما نیاز به افزونگی و / یا قدرت محاسبه بیشتری دارد ، می توانید بیش از دو سرور راه اندازی کنید ، و مراحل ارائه شده در این راهنما هنوز هم اعمال می شود.

گسترش

از رابط استقرار سرور Vultr بازدید کنید .

اطمینان حاصل کنید که Vultr Cloud (VC2)برگه در بالای صفحه انتخاب شده است.

شما می توانید هر مکان را از این Server Locationبخش انتخاب کنید ، با این وجود همه سرورها باید در یک مکان قرار داشته باشند ، در غیر این صورت امکان استقرار یک Docker swarm برای آنها وجود نخواهد داشت.

را انتخاب کنید ISO Libraryتب از Server Typeبخش و را انتخاب کنید Alpine Linux 3.9.0 x86_64تصویر.

از Server Sizeبخش مورد نظر گزینه مناسبی را انتخاب کنید . این راهنما از اندازه سرور 25 گیگابایتی SSD استفاده خواهد کرد ، اما این ممکن است برای پاسخگویی به نیازهای منابع برنامه شما کافی نباشد. در حالی که Vultr امکان ارتقاء اندازه سرور را پس از راه اندازی آن آسان می کند ، شما هنوز هم باید با دقت در نظر بگیرید که اندازه سرور برنامه شما برای عملکرد بهینه نیاز دارد.

در Additional Featuresبخش ، باید گزینه را انتخاب Enable Private Networkingکنید. در حالی که گزینه های دیگر برای پیروی از این راهنما لازم نیست ، باید در نظر بگیرید که آیا هر یک از آنها در متن برنامه خود منطقی است یا خیر.

اگر قبلاً این Multiple Private Networksگزینه را در حساب خود فعال کرده باشید ، باید یک موجود را انتخاب کنید یا یک شبکه خصوصی جدید برای سرورهای خود ایجاد کنید. اگر آن را فعال نکرده اید ، می توانید این بخش را نادیده بگیرید. برای اطلاعات در مورد پیکربندی دستی شبکه های خصوصی ، به این راهنما مراجعه کنید .

Firewall Groupاکنون از بخش پرش کنید . فقط سروری که به عنوان گره مدیر در swam Docker فعالیت می کند ، به پورت های در معرض نیاز دارد و این باید پس از استقرار سرور تنظیم شود.

در همان پایین صفحه ، باید Server Qtyحداقل یکی دو مورد را وارد کنید . همانطور که قبلاً نیز اشاره شد ، شما ممکن است به بیش از دو سرور نیاز داشته باشید ، اما دو مورد برای پیروی از این راهنما کافی است.

سرانجام ، در این Server Hostname & Labelبخش ، نام های میزبان و برچسب های معنی دار و به یاد ماندنی را برای هر سرور وارد کنید. برای این منظور از این راهنما، نام میزبان و برچسب از سرور اول خواهد بود docker-managerو Docker Manager، به ترتیب و docker-workerو Docker Workerبرای بار دوم، به ترتیب.

پس از بررسی دوبار تمام تنظیمات خود ، می توانید بر روی Deploy Nowدکمه در پایین صفحه کلیک کنید تا سرورهای خود را راه اندازی کنید.

Alpine Linux 3.9.0 را روی سرورها نصب کنید

از آنجا که شما یک سیستم عامل را از کتابخانه ISO Vultr انتخاب کرده اید ، باید Alpine Linux 3.9.0 را به صورت دستی نصب و پیکربندی کنید.

پس از اختصاص یک یا دو دقیقه به Vultr برای اختصاص سرورهای خود ، روی more optionsنماد Triple dot برای Docker Managerسرور در رابط مدیریت سرور کلیک کنید ، و سپس گزینه را انتخاب View Consoleکنید.

شما باید با اعلان ورود به سیستم به کنسول هدایت شوید. اگر اینطور نیست ، لطفا یک دقیقه دیگر صبر کنید تا Vultr به کار خود پایان دهد.

در آن زمان وارد شوید ، به rootعنوان نام کاربری وارد شوید . نسخه زنده Alpine Linux 3.9.0 (همان چیزی است که سرورهای شما در حال اجرا هستند) نیازی به سرگرمی ندارد هنگام ورود به سیستم ، رمز عبور خود را وارد کند.

هنگامی که با موفقیت وارد حساب root شوید ، پیام خوش آمدید را مشاهده می کنید که یک پوسته فوری دارد که به شرح زیر است:

localhost:~# 

برای شروع نصب Alpine Linux ، دستور زیر را وارد کنید:

# setup-alpine

ابتدا یک صفحه کلید مناسب را انتخاب کنید. در این راهنما از usطرح و نوع استفاده خواهد شد .

هنگام تنظیم نام میزبان ، همان نام میزبان را که در هنگام استقرار برای این سرور تنظیم کرده اید ، انتخاب کنید. اگر دقیقاً این راهنما را دنبال کرده اید ، نام میزبان باید باشد docker-manager.

باید دو رابط شبکه موجود باشد: eth0و eth1. اگر فقط می بینید eth0، این بدان معنی است که شبکه خصوصی سرورهای خود را به درستی پیکربندی نکرده اید. در ابتدا eth0با استفاده از dhcpو اولیه سازی eth1با استفاده از آدرس IP خصوصی ، netmask و دروازه این سرور در هنگام استقرار مشخص شد. از طریق رابط تنظیمات سرور خود می توانید به این جزئیات دسترسی پیدا کنید. در صورت درخواست ، هیچگونه تنظیمات شبکه دستی را انجام ندهید.

رمزعبور جدیدی را برای حساب root وارد کنید و سپس یک منطقه زمانی مناسب برای مکانی که برای استقرار این سرورها در آن انتخاب کرده اید ، انتخاب کنید.

اگر قصد استفاده از پروکسی HTTP / FTP را دارید ، URL آن را وارد کنید ، در غیر این صورت URL پروکسی تنظیم نکنید.

برای مدیریت هماهنگی ساعت سیستم ، یک سرویس گیرنده NTP را انتخاب کنید. این راهنما استفاده خواهد کرد busybox.

وقتی از آینه مخزن بسته استفاده می شود ، یا با وارد کردن شماره آن یکی را صریحا انتخاب کنید. با وارد کردن به طور خودکار سریعترین مورد را تشخیص داده و انتخاب کنید f. یا با وارد کردن پرونده پیکربندی مخزن را به صورت دستی ویرایش کنید eکه توصیه نمی شود مگر اینکه با Alpine Linux آشنا باشید. این راهنما از آینه اول استفاده خواهد کرد.

اگر قصد دارید از SSH برای دسترسی به سرورهای خود یا میزبانی سیستم فایل مبتنی بر SSH استفاده کنید ، یک سرور SSH را انتخاب کنید. این راهنما استفاده خواهد کرد openssh.

وقتی از شما خواسته شد دیسک استفاده شود ، دیسک را vdaبه عنوان sysنوع انتخاب کنید .

Alpine Linux 3.9.0 اکنون باید روی سرور شما نصب شود. این روند را برای همه سرورهای دیگر که قبلاً مستقر کرده اید ، تکرار کنید ، و اطمینان حاصل کنید که مقادیر صحیح را برای نام میزبان و eth1رابط شبکه جایگزین خواهید کرد .

پیکربندی سرور پس از نصب

در این مرحله ، سرورهای شما هنوز نسخه زنده ISO Alpine Linux 3.9.0 را اجرا می کنند. برای بوت شدن از نصب SSD ، به رابط تنظیمات سرور خود بروید ، به Custom ISOورودی منوی جانبی بروید و روی Remove ISOدکمه کلیک کنید. این باید سرور را مجدداً راه اندازی کند. اگر این کار را نکند ، دوباره به صورت دستی راه اندازی مجدد شود.

پس از اتمام راه اندازی مجدد سرور ، دوباره به کنسول وب سرور بروید Docker Manager.

با استفاده از گذرواژه ای که در مراحل نصب تنظیم کرده اید ، وارد حساب اصلی شوید.

مخزن بسته جامعه را با اظهار نکردن خط سوم /etc/apk/repositoriesاستفاده از آن ، فعال کنید vi. شما می توانید لبه ها و آزمایش مخازن را به روشی مشابه فعال کنید ، اما لازم نیست آنها از این راهنما پیروی کنند.

با وارد کردن دستور پوسته زیر ، فهرست بسته محلی سرور را با مخزن راه دور که قبلاً انتخاب کرده اید همگام سازی کنید:

# apk update

سپس بسته های منسوخ را ارتقا دهید:

# apk upgrade

مانند گذشته ، این فرآیند پیکربندی را برای هر سرور که قبلاً مستقر کرده اید ، تکرار کنید.

Docker را روی سرورهای خود نصب کنید

قبل از نصب بسته Docker خود ، ممکن است بخواهید یک dockerکاربر جداگانه ایجاد کنید . می توانید این کار را با استفاده از دستور زیر انجام دهید:

# adduser docker

توجه: این کاربر جدید و هر کاربرانی که به dockerگروه جدید اضافه شده اند ، پس از نصب بسته Docker از امتیازات اصلی برخوردار خواهند بود. شماره زیر را از مخزن Moby Github ببینید:

با توجه به --privilegeddocker ، هرکسی که به گروه docker اضافه شود معادل ریشه آن است. هر کس که در گروه docker است ، حول محور کلیه سیاست های افزایش امتیاز و ممیزی در سیستم ، یک درب پشتی دارد.

این متفاوت از آن است که کسی بتواند در آنجا که دارای خط مشی است ، اجرا کند.

اگر می خواهید مجوز sudo را به dockerکاربر بدهید ، ابتدا sudoبسته را نصب کنید :

# apk add sudo

سپس یک sudoگروه ایجاد کنید :

# addgroup sudo

در آخر dockerکاربر را به sudoگروه اضافه کنید:

# adduser docker sudo

اکنون می توانید مرحله 4 این راهنما را دنبال کنید تا پیکربندی سودو به پایان برسد.

در این مرحله ، شما آماده نصب بسته Docker هستید. توجه داشته باشید که dockerبرای نصب و پیکربندی Docker یک کاربر جداگانه و دارای قابلیت سودو کاملاً ضروری نیست ، اما این راهنما از آن کنوانسیون پیروی می کند.

بسته Docker را با دستور زیر نصب کنید:

# apk add docker

سپس اسکریپت Docker init را فعال کنید:

# rc-update add docker

در آخر ، Daemon Demoner را شروع کنید:

# rc-service docker start

می توانید تأیید کنید که داکر با این دستور در حال اجرا است:

# docker info

مانند آخرین بار ، این مراحل نصب Docker را برای هر سروری که در ابتدا مستقر کرده اید ، تکرار کنید.

یک ازدحام داکر را با یک گره مدیر و یک گره کارگر آغاز کنید

با توجه به همه این تنظیمات ، شما سرانجام برای ایجاد ازدحام Docker آماده هستید.

swarm ایجاد کنید و گره مدیر اضافه کنید

به کنسول وب Docker Managerسرور خود برگردید . شما این سرور را به عنوان یک گره مدیر در swarm خود پیکربندی می کنید. اگر تصمیم گرفتید dockerکاربر را زودتر ایجاد کنید ، با استفاده از آن حساب کاربری خود را وارد کنید و نه به عنوان سرگرمی.

دستور زیر را وارد کنید ، اما 192.0.2.1آدرس IP را که به Docker Managerسرور شما اختصاص داده شده است جایگزین خصوصی ، (نه عمومی) کنید :

$ docker swarm init --advertise-addr 192.0.2.1

Docker دستوری را که می توانید بر روی سرورهای دیگر در شبکه خصوصی اجرا کنید نمایش می دهد تا آنها را به عنوان گره های کارگر به این swarm جدید اضافه کند. این دستور را ذخیره کنید

گره کارگر را اضافه کنید

اکنون به کنسول وب Docker Workerسرور خود بروید و در dockerصورت ایجاد آن با کاربر وارد سیستم شوید.

برای افزودن این سرور به عنوان یک گره کارگر به swarm شما که ایجاد کرده اید ، فرمانی را که از خروجی فرمان ایجاد swarm صرفه جویی کرده اید ، اجرا کنید. شبیه به موارد زیر خواهد بود:

$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377

Docker نتیجه خواهد داد که آیا گره قادر به پیوستن به swarm بوده است یا خیر. اگر با مشکلات اضافه کردن گره های کارگر به swarm مواجه شدید ، پیکربندی شبکه خصوصی خود را دو برابر کنید و برای عیب یابی به این راهنما مراجعه کنید .

اگر در ابتدا بیش از دو سرور مستقر کرده اید ، می توانید با استفاده از دستور فوق ، بقیه را به عنوان گره های کارگر به swarm خود اضافه کنید و منابع موجود در برنامه خود را افزایش دهید. روش دیگر ، شما می توانید گره های مدیر اضافی اضافه کنید ، اما این فراتر از محدوده این راهنما نیست.

برای مدیریت ازدحام Docker خود ، Portainer را با SSL مستقر کنید

در این مرحله ازدحام Docker شما آماده استفاده است. اما ممکن است شما به طور اختیاری یک پشته Portainer را روی گره مدیر در swarm خود راه اندازی کنید. Portainer یک رابط وب مناسب برای مدیریت ازدحام و گره های موجود در آن ارائه می دهد.

اکنون زمان آن رسیده است که یک گروه فایروال برای swarm خود ایجاد کنید. مگر اینکه برنامه شما به طور خاص به آن نیاز داشته باشد ، فقط درگاه های مدیر خود را در معرض قرار دهید . قرار گرفتن درگاه در گره های کارگر شما بدون در نظر گرفتن دقت می تواند آسیب پذیری را ایجاد کند.

به رابط مدیریت فایروال بروید و یک گروه جدید فایروال ایجاد کنید. درخواست شما باید کدامیک از پورت ها را در معرض نمایش قرار دهد ، اما حداقل باید بندر را 9000برای Portainer در معرض دید خود قرار دهید. این گروه فایروال را روی Docker Managerسرور اعمال کنید.

در حالی که نیازی نیست ، ایمن سازی Portainer با SSL اکیداً توصیه می شود. به خاطر این راهنما ، شما فقط از یک گواهی OpenSSL خود امضا شده استفاده خواهید کرد ، اما باید در تولید ، از Let Encrypt استفاده کنید.

به کنسول وب Docker Managerسرور بروید ، با استفاده از dockerکاربر وارد شوید و از دستورات زیر برای تولید گواهی OpenSSL خود امضا شده استفاده کنید:

$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650

~/portainer-agent-stack.ymlبا محتوای زیر یک پرونده جدید ایجاد کنید :

version: '3.2'

services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      CAP_HOST_MANAGEMENT: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /:/host
    networks:
      - agent_network
    deploy:
      mode: global

  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
    ports:
      - target: 9000
        published: 9000
        protocol: tcp
        mode: host
    volumes:
      - portainer_data:/data
      - /home/docker/certs:/certs
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  agent_network:
    driver: overlay
    attachable: true

volumes:
  portainer_data:

پس از اصلاح این پرونده پیکربندی پشته Docker برای مطابقت با نیازهای خود ، می توانید آن را مستقر کنید:

$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer

برای تأیید اینکه Portainer در حال کار است ، پس از دادن دو یا دو دقیقه به داکر ، دستور زیر را اجرا کنید:

$ docker ps

شما دو ظرف را با تصاویر مشاهده خواهید کرد portainer/portainer:latestو portainer/agent:latestتأیید می کنید که Portainer به درستی شروع شده است.

اکنون می توانید با مراجعه به آدرس IP عمومی Docker Managerسرور خود در پورت 9000با استفاده از HTTPS ، ازدحام Docker خود را تنظیم و مدیریت کنید .



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد