Стицки Сессион Витх Доцкер Сварм (ЦЕ) на ЦентОС 7

Увод

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

Предуслови

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

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

Ко сам ја

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

sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Ако бисмо касније ОДМОР крајња тачка у , можемо видети роунд робин оптерећења за балансирање на Доцкер Роја на послу.curlwhoamihttp://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: Назив наше нове Доцкер услуге је traefik
  • -p8080:80: Објављујемо Траефик-ов порт 80за порт 8080(порт 80је већ у употреби од стране наших whoami-service)
  • -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: Аргументи командне линије су прослеђени директно Траефик-у како би му се омогућило да ради у режиму Доцкер роја ( --loglevel=DEBUGовде је опционо, али занимљиво током подешавања и за овај водич)

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

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload

Како то ради

Чим се Траефик покрене, можете видети у евиденцији да Траефик открива два 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 у Доцкер ЦЕ на ЦентОС 7.


Инсталирајте Плеск на ЦентОС 7

Инсталирајте Плеск на ЦентОС 7

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

Како инсталирати Скуид проки на ЦентОС

Како инсталирати Скуид проки на ЦентОС

Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Како инсталирати Лигхттпд (ЛЛМП Стацк) на ЦентОС 6

Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

Конфигурисање статичког умрежавања и ИПв6 на ЦентОС 7

ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Модификовање Ицинга2 да користи модел Мастер/Цлиент на ЦентОС 6 или ЦентОС 7

Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Како инсталирати Апацхе Цассандра 3.11.к на ЦентОС 7

Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу

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

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

Користите другачији систем? Мицровебер је ЦМС и онлајн продавница отвореног кода. Мицровебер изворни код се налази на ГитХуб-у. Овај водич ће вам показати

Како инсталирати Маттермост 4.1 на ЦентОС 7

Како инсталирати Маттермост 4.1 на ЦентОС 7

Користите другачији систем? Маттермост је опен соурце алтернатива Слацк СААС сервису за размену порука. Другим речима, са Маттермостом, ца

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Креирање мреже Минецрафт сервера са БунгееЦорд-ом на Дебиан 8, Дебиан 9 или ЦентОС 7

Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво

Омогућава шифровање на Плеску

Омогућава шифровање на Плеску

Плеск контролна табла има веома лепу интеграцију за Летс Енцрипт. Летс Енцрипт је један од јединих ССЛ провајдера који у потпуности издају сертификате

Омогућава шифровање на цПанелу

Омогућава шифровање на цПанелу

Летс Енцрипт је ауторитет за сертификацију посвећен бесплатном пружању ССЛ сертификата. цПанел је направио уредну интеграцију тако да ви и ваш клијент

Како инсталирати Цонцрете5 на ЦентОС 7

Како инсталирати Цонцрете5 на ЦентОС 7

Користите другачији систем? Цонцрете5 је ЦМС отвореног кода који нуди многе карактеристичне и корисне функције које помажу уредницима да лако производе садржај и

Како инсталирати плочу за преглед на ЦентОС 7

Како инсталирати плочу за преглед на ЦентОС 7

Користите другачији систем? Ревиев Боард је бесплатан алат отвореног кода за преглед изворног кода, документације, слика и још много тога. То је софтвер заснован на вебу

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

Подесите ХТТП аутентификацију помоћу Нгинк-а на ЦентОС 7

У овом водичу ћете научити како да подесите ХТТП аутентификацију за Нгинк веб сервер који ради на ЦентОС 7. Захтеви Да бисте започели, требаће вам

Како инсталирати ИОУРЛС на ЦентОС 7

Како инсталирати ИОУРЛС на ЦентОС 7

ИОУРЛС (Иоур Овн УРЛ Схортенер) је апликација за скраћивање УРЛ-ова отвореног кода и аналитику података. У овом чланку ћемо покрити процес инсталације

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Како инсталирати и конфигурисати АрангоДБ на ЦентОС 7

Користите другачији систем? Увод АрангоДБ је НоСКЛ база података отвореног кода са флексибилним моделом података за документе, графиконе и кључ-вредности. То је

Коришћење Етцкеепер-а за контролу верзија /етц

Коришћење Етцкеепер-а за контролу верзија /етц

Увод Директоријум /етц/ игра кључну улогу у начину на који Линук систем функционише. Разлог за то је што је скоро свака конфигурација система

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

Зашто би требало да користите ССХФС? Како монтирати удаљени систем датотека са ССХФС на ЦентОС 6

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

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Подешавање сервера Халф Лифе 2 на ЦентОС 6

Овај водич ће покрити процес инсталирања Халф Лифе 2 сервера за игре на ЦентОС 6 систем. Корак 1: Инсталирање предуслова Да бисте подесили оу

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Како инсталирати Ларавел ГитСцрум на ЦентОС 7

Ларавел ГитСцрум или ГитСцрум је алатка за продуктивност отвореног кода дизајнирана да помогне развојним тимовима да имплементирају Сцрум методологију на сличан начин т

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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