Еуропада Docker Swarm үшін бұлттық сервер
Docker Swarm - Docker Engine-дегі кіріктірілген кластерлеу режимі. Ол Kubernetes-тен қарапайым, шағын түзетуден кейін стандартты docker-compose файлдарымен жұмыс істейді және Docker-ді әлдеқашан қолданатын, бірақ жүктемелерді бірнеше хостта іске қосқысы келетін командалар үшін тиімді жол.
Командаңыз бір серверде docker-compose-тан бірнеше хостты схемаға көшіп жатса, Kubernetes-тің күрделілігін мойныңа алмай тұрып Docker Swarm-ды бағалау керек. Ал қолданушыларыңыз Еуропада болса, Swarm кластерін ЕО инфрақұрылымында орналастыру кешігу және сәйкестік себептері бойынша тікелей таңдау.
ЕО-дағы хостинг Docker Swarm үшін неге маңызды
Docker Swarm контейнерлерді менеджер және жұмыс түйіндері бойынша оверлей желісі арқылы таратады. Оверлей желісі түйіндер арасындағы трафикті инкапсуляциялайды, ал олардың арасындағы кешігу сервистердің деректермен қаншалықты жылдам алмасатынына және Raft консенсус хаттамасының менеджерлерді синхрондауда қаншалықты сенімді ұстайтынына әсер етеді.
Барлық Swarm түйінін бір ЕО дата-орталығында немесе кемінде бір өңірде орналастыру түйіндер арасында миллисекундтан аз кешігу береді. Бір дата-орталықтағы DCXV бұлттық инстанстары ортақ жеке желіде тұрады, ал бұл Swarm-ның оверлей желісіне қажет схема.
GDPR сәйкестігі - ЕО-да орналасудың екінші себебі. Swarm сервистері еуропалық қолданушылардың дербес деректерін өңдесе немесе сақтаса, бұл деректер ЕО юрисдикциясында қалуы керек. Еуропалық бұлттық провайдер бұны қосымша заңдық құрылымдарсыз шешеді.
Серверге қойылатын ең аз талаптар
Docker Swarm Kubernetes-тен жеңіл. Менеджер түйініне сондай қор қажет емес, ал жұмыс түйіндеріне өздеріне тағайындалған контейнерлерге жететін ресурс жеткілікті.
Менеджер түйіндері үшін:
- RAM: кемінде 2 ГБ (1 ГБ ОЖ мен Docker демонына резервтелген)
- CPU: кемінде 1 ядро (жауап беру жылдамдығы үшін 2 ядро ұсынылады)
- Диск: 20 ГБ SSD
- Docker Engine: 24 нұсқасы немесе жаңасы
Жұмыс түйіндері үшін:
- RAM: түйінге кемінде 2 ГБ (өз контейнер жүктемелеріңізге қарай ауқымдаңыз)
- CPU: түйінге кемінде 1-2 ядро
- Диск: түйінге 20 ГБ SSD
Базалық Swarm кластеріне кемінде бір менеджер және бір жұмыс түйіні қажет. Істен шығуға төзімділік үшін 3 менеджер түйінін қолданыңыз (Raft көпшілікті талап етеді, сондықтан 3 менеджер біреуінің істен шығуына төтеп береді) және жүктеме талап ететін мөлшерде жұмыс түйіндерін алыңыз.
DCXV-тің ұсынылатын конфигурациясы
https://dcxv.com/data-center#cloud бетіндегі DCXV бұлттық инстанстары айына EUR 15-тен басталады. 3 менеджер және 2 жұмыс түйіні бар ең аз Docker Swarm схемасы 2 ГБ RAM / 2 vCPU бес инстансында жақсы жұмыс істейді, бұл шығынды болжауға болатын етеді.
Бір дата-орталықтағы барлық DCXV бұлттық инстансы Docker Swarm-ның оверлей желісі сүйенетін, кешігуі төмен жеке желімен жалғанған. Әр инстансқа қосылған тәулік бойғы инженер қолдауы менеджер түйіні істен шығып, кластер кворум жоғалтқанда телефон соғатын адам бар екенін білдіреді.
Ірілеу парктерге немесе өнімділікке тұрақты кепілдік қажет жүктемелерге DCXV бөлінген серверлері айына EUR 49-дан басталады.
Реттеу нұсқаулығы
DCXV инстанстарында Docker Swarm кластерін инициализациялау:
# Бірінші менеджер түйінінде: swarm-ды инициализациялау
docker swarm init --advertise-addr <manager-private-ip>
# worker үшін қосылу токенін алу
docker swarm join-token worker
# manager үшін қосылу токенін алу (қосымша менеджер түйіндеріне)
docker swarm join-token manager
# Әрбір қосымша менеджер түйінінде: manager ретінде қосылу
docker swarm join --token <manager-token> <first-manager-ip>:2377
# Әрбір жұмыс түйінінде: swarm-ға қосылу
docker swarm join --token <worker-token> <first-manager-ip>:2377
Кластер инициализацияланғаннан кейін стекті compose файлынан орналастырыңыз:
docker stack deploy -c docker-compose.yml myapp
Күтілетін өнімділік
2 ГБ / 2 vCPU инстанстарындағы 5 түйінді Docker Swarm кластерінде (3 менеджер, 2 жұмыс түйіні):
- әдеттегі контейнер бейнелері үшін сервисті іске қосу уақыты 5-15 секунд
- бір жеке желідегі түйіндер арасында оверлей желісінің өткізу қабілеті 500 Мбит/с-тан 2 Гбит/с-қа дейін
- Raft консенсус жаңартулары менеджерлер арасында 50 мс-тен аз уақытта тарайды
- 2 және одан көп репликасы бар сервистер үшін жылжымалы жаңартулар тоқтап қалмай өтеді
- осы өлшемдегі кластер контейнер жүктемесінің көлеміне қарай 50-200 қатар сервисті ұстайды
Docker Swarm көлденең жақсы ауқымдалады. Кластерге жұмыс түйінін қосу - бір пәрмен, ал Swarm жоспарлағышы контейнерлерді түйіндер бойынша автоматты таратады. Ағымдағы ауқымда Kubernetes тым күрделі болатын командаларға ЕО-дағы бұлттық инстанстарда Docker Swarm тиімді және қолдауға келетін балама береді.
Бұл өз зертханамыздағы өлшеу емес, осы сыныптағы жабдыққа арналған күтілім. Оларды өлшемді есептеудің бастау нүктесі деп санаңыз және өз жүктемеңізді өлшеңіз: нақты сандар провайдерден гөрі сіздің деректеріңізге, сұрауларыңызға және баптауыңызға әлдеқайда қатты байланысты.
