Стицки Сессион Витх Доцкер Сварм (ЦЕ) на Дебиан-у 9

Увод

Доцкер Сварм претвара ваше појединачне сервере у кластер рачунара; олакшавајући скалирање, високу доступност и балансирање оптерећења. Сварм балансатор оптерећења примењује стратегију заокруженог балансирања оптерећења, а то би могло да омета правилно функционисање (застарелих) апликација са стањем које захтевају неки облик лепљивих сесија да би се омогућило високо доступно подешавање са више инстанци. Доцкер Ентерприсе Едитион подржава лепљиву сесију Лаиер-7, али у овом водичу ћемо се фокусирати на бесплатну (ЦЕ) верзију Доцкер-а. За имплементацију лепљивих сесија користићемо Траефик.

Предуслови

  • Најмање две свеже распоређене и ажуриране инстанце Дебиан 9 у истој подмрежи са омогућеним приватним умрежавањем
  • Доцкер ЦЕ инсталиран на овим инстанцама
  • Инстанце треба да буду део истог роја и треба да буду у могућности да комуницирају једна са другом преко приватне мреже
  • Претходно познавање Доцкер-а и Доцкер Сварм-а
  • Не-роот корисник са sudoправима (опционо, али се препоручује да не користите роот корисника)

У овом водичу ћемо користити две Вултр инстанце са приватним ИП адресама 192.168.0.100и 192.168.0.101. Оба су Доцкер Сварм менаџерски чворови (што није идеално за производњу, али довољно за овај водич).

Ко сам ја

Овај водич користи jwilder/whoamiдоцкер слику као демо апликацију. Овај једноставан контејнер ће одговорити на РЕСТ позив именом контејнера који одговара, што олакшава тестирање да ли лепљиве сесије раде. Ова слика се очигледно користи само у демо сврхе и треба је заменити сликом ваше апликације.

Вхоами-сервис је конфигурисан на следећи начин:

sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000"  jwilder/whoami
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Ако накнадно curlпоставимо вхоами РЕСТ крајњу тачку на http://192.168.0.100/, можемо видети кружно балансирање оптерећења Доцкер Сварм-а на делу:

curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3

Нема сврхе тестирати ово са модерним претраживачима попут Цхроме-а или Фирефок-а јер су дизајнирани да одржавају везе у животу, а Доцкер Сварм балансатор оптерећења ће се само пребацити на други контејнер након сваке нове везе. Ако желите да тестирате ово помоћу претраживача, мораћете да сачекате најмање 30 секунди да се веза затвори пре него што поново освежите.

Постављање Траефик-а

Траефик изворно подржава Доцкер Сварм, може да открије и региструје или дерегиструје контејнере у ходу и комуницира са вашом апликацијом преко интерне мреже за прекривање. Траефик-у су потребне неке информације о вашој апликацији пре него што почне да обрађује захтеве за њу. Ове информације се пружају Траефик-у додавањем етикета вашој Сварм услузи:

sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service

Следећа листа описује шта свака ознака значи:

  • traefik.docker.network : Доцкер преклапајућа мрежа, преко које ће Траефик комуницирати са вашом услугом
  • traefik.port : Порт на којем ваша услуга слуша (ово је интерно изложени порт, а не објављени порт)
  • traefik.frontend.rule: PathPrefix:/ везује корен контекста ' /' за ову услугу
  • traefik.backend.loadbalancer.stickiness : Омогућава лепљиве сесије за ову услугу

Сада када whoami-serviceје конфигурисан са потребним ознакама, можемо додати услугу Траефик у рој:

sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG

Ова команда ради доста ствари одједном, као што је приказано на следећој листи:

  • --name traefik : Назив наше нове Доцкер услуге је Траефик
  • -p8080:80: Објављујемо Траефик-ов порт 80до порта 8080јер порт 80већ користи наш вхоами-сервис
  • -p9090:8080 : Објављујемо Траефик-ов сопствени веб интерфејс за порт 9090
  • --mount ... : Монтирамо Доцкер Соцкет у контејнер тако да Траефик може приступити Доцкер рунтиме-у хоста
  • --global : Желимо Траефик контејнере на сваком менаџерском чвору из разлога високе доступности
  • --constraint 'node.role == manager': Желимо само да Траефик ради на чворовима менаџера јер раднички чворови не могу да пруже Траефик-у информације које су му потребне. На пример, docker service lsна радном чвору не ради, тако да Траефик не би могао ни да открије које услуге се покрећу
  • --network whoaminet: Повежите Траефик на исту мрежу као и наш whoami-service, иначе не може да се повеже на њу. Претходно смо рекли Траефик-у да се повеже са нашом услугом преко ове мреже са traefik.docker.networkознаком
  • traefik : Реците Доцкер-у да користи најновију Траефик доцкер слику за ову услугу
  • --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG: Аргументи командне линије су прослеђени директно Траефик-у да би му се омогућило да ради у режиму Доцкер роја. DEBUGје овде опционо, али занимљиво током подешавања и за овај водич

Све што је преостало је да отворите потребне портове у Дебиан заштитном зиду:

sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT

Како то ради

Чим се Траефик покрене, можете видети у евиденцији да Траефик открива два whoamiконтејнера. Такође емитује име колачића који ће користити за руковање лепљивом сесијом:

time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"

Ако се савијемо до http://192.168.0.100:8080, можемо видети да је постављен нови колачић, _a49bc:

curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
*   Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact

Ако у наредним позивима пошаљемо овај колачић Траефик-у, увек ћемо бити прослеђени у исти контејнер:

curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3

Колачић не садржи ништа осим интерне ИП адресе контејнера на који Траефик треба да пошаље захтев. Ако промените вредност колачића на http://10.0.0.4:8000, онда ће захтев бити проследен другом контејнеру. Ако колачић никада не би био поново послат Траефик-у, лепљива сесија неће радити и захтеви ће бити балансирани између контејнера апликације и Траефик контејнера.

То је све што је потребно за постављање лепљивих сесија слоја 7 у Доцкер ЦЕ на Дебиан 9.


Ево како да проверите Хипер-В контејнере на Виндовс 10 Инсидер-у

Ево како да проверите Хипер-В контејнере на Виндовс 10 Инсидер-у

Мицрософт је у новом посту на блогу објаснио како Виндовс Инсајдери могу тестирати Хипер-В контејнере на Виндовс 10, ново решење за виртуелизацију које омогућава покретање апликација без утицаја на остатак вашег оперативног система.

Како инсталирати Харбор на ЦентОС 7

Како инсталирати Харбор на ЦентОС 7

Харбор је сервер регистра предузећа отвореног кода који чува и дистрибуира Доцкер слике. Харбор проширује Доцкер Дистрибутион отвореног кода б

Инсталирајте Ранцхер ОС преко иПКСЕ

Инсталирајте Ранцхер ОС преко иПКСЕ

Ранцхер ОС је веома лагана Линук дистрибуција изграђена око Доцкер-а. Сам ОС тежи око 20МБ. Овај водич ће вас покренути и покренути

На ЦореОС-у, подесите сопствени Доцкер регистар

На ЦореОС-у, подесите сопствени Доцкер регистар

Сви знамо и волимо Доцкер, платформу за креирање, управљање и дистрибуцију контејнера апликација на више машина. Доцкер Инц. пружа услугу т

Инсталирање доцкер-цомпосе на ЦореОС

Инсталирање доцкер-цомпосе на ЦореОС

Овај чланак објашњава како да инсталирате доцкер-цомпосе на ЦореОС. У ЦореОС-у, директоријум /уср/ је непроменљив тако да је стандардна /уср/лоцал/бин путања недоступна за

Инсталирајте Ранцхер на ЦентОС 7

Инсталирајте Ранцхер на ЦентОС 7

Користите другачији систем? Увод Ранцхер је платформа отвореног кода за покретање контејнера и изградњу приватног контејнерског сервиса. Ранчер је база

Инсталирајте Доцкер ЦЕ на Убунту 18.04

Инсталирајте Доцкер ЦЕ на Убунту 18.04

Увод Доцкер је апликација која нам омогућава да применимо програме који се покрећу као контејнери. Написан је у популарном Го програмском језику

Направите Доцкер Сварм на Алпине Линук 3.9.0

Направите Доцкер Сварм на Алпине Линук 3.9.0

Увод Овај водич ће вам показати како да креирате и конфигуришете Доцкер рој користећи више Алпине Линук 3.9.0 сервера и Портаинер-а. Имајте на уму да

Поставите ПХП апликацију користећи Доцкер-цомпосе

Поставите ПХП апликацију користећи Доцкер-цомпосе

ПХП апликације се обично састоје од веб сервера, система релационих база података и самог тумача језика. У овом туторијалу бићемо полуге

Баланс оптерећења са Доцкер-ом

Баланс оптерећења са Доцкер-ом

Када покрећете веб апликацију, обично желите да максимално искористите своје ресурсе без потребе да конвертујете софтвер да користи вишенитно о

Поставите Ноде.јс апликацију користећи Доцкер

Поставите Ноде.јс апликацију користећи Доцкер

Овај чланак ће вам показати како да примените своју Ноде апликацију у Доцкер контејнеру. Напомена: Овај водич претпоставља да имате инсталиран и прочитан Доцкер

Инсталирање Доцкер ЦЕ на ЦентОС 7

Инсталирање Доцкер ЦЕ на ЦентОС 7

Доцкер контејнерска технологија вам омогућава да покрећете апликације у специфичном и изолованом окружењу. Доцкер Цоммунити Едитион (ЦЕ) је ново име за фре

Поставите Кубернетес са Кубеадм-ом на ЦентОС 7

Поставите Кубернетес са Кубеадм-ом на ЦентОС 7

Преглед Овај чланак има за циљ да вам помогне да за кратко време покренете Кубернетес кластер са кубеадм-ом. Овај водич ће применити два сервера, на

Инсталирање Доцкер-а на ЦентОС 7

Инсталирање Доцкер-а на ЦентОС 7

Користите другачији систем? Доцкер је апликација која омогућава примену софтвера унутар виртуелних контејнера. Написано је у Го програму

Инсталирање Доцкер ЦЕ на Дебиан 9

Инсталирање Доцкер ЦЕ на Дебиан 9

Користите другачији систем? Увод Доцкер је апликација која омогућава примену софтвера унутар виртуелних контејнера. Написано је у Г

Започните са СКЛ Сервером 2017 (МС-СКЛ) на ЦентОС 7 помоћу Доцкер-а

Започните са СКЛ Сервером 2017 (МС-СКЛ) на ЦентОС 7 помоћу Доцкер-а

Предуслови Доцкер енгине 1.8+. Најмање 4 ГБ простора на диску. Најмање 4 ГБ РАМ-а. Корак 1. Инсталирајте Доцкер Да бисте инсталирали СКЛ-Сервер, потребно је Доцкер

Стицки Сессион Витх Доцкер Сварм (ЦЕ) на Дебиан-у 9

Стицки Сессион Витх Доцкер Сварм (ЦЕ) на Дебиан-у 9

Користите другачији систем? Увод Доцкер Сварм претвара ваше појединачне сервере у кластер рачунара; олакшавање скалирања, висока доступност ан

Два Доцкер графичка алата за управљање: ДоцкерУИ и Схипиард

Два Доцкер графичка алата за управљање: ДоцкерУИ и Схипиард

Уз помоћ апликације Вултр Доцкер, можете лако да примените Доцкер на инстанци вашег Вултр сервера. У међувремену, можете олакшати задатак управљања Доцкер-ом

Инсталирајте Ранцхер Сервер на РанцхерОС

Инсталирајте Ранцхер Сервер на РанцхерОС

Преглед РанцхерОС је невероватно лаган оперативни систем (само око 60 МБ) који покреће системски Доцкер демон као ПИД 0 за покретање системских услуга

Почетак рада са Кубернетес-ом на ЦентОС-у 7

Почетак рада са Кубернетес-ом на ЦентОС-у 7

Кубернетес је платформа отвореног кода коју је развио Гоогле за управљање контејнерским апликацијама на кластеру сервера. Надовезује се на деценију и

Успон машина: Примене вештачке интелигенције у стварном свету

Успон машина: Примене вештачке интелигенције у стварном свету

Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.

ДДОС напади: кратак преглед

ДДОС напади: кратак преглед

Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.

Да ли сте се икада запитали како хакери зарађују новац?

Да ли сте се икада запитали како хакери зарађују новац?

Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Гоогле-ови револуционарни изуми који ће вам олакшати живот.

Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Фридаи Ессентиал: Шта се десило са аутомобилима које покреће вештачка интелигенција?

Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…

Технолошка сингуларност: далека будућност људске цивилизације?

Технолошка сингуларност: далека будућност људске цивилизације?

Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.

Еволуција складиштења података – Инфографика

Еволуција складиштења података – Инфографика

Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.

Функционалности слојева референтне архитектуре великих података

Функционалности слојева референтне архитектуре великих података

Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

6 невероватних предности поседовања паметних кућних уређаја у нашим животима

У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Ажурирање додатка за мацОС Цаталина 10.15.4 изазива више проблема него што их решава

Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више