Konteyner orkestri üçün Docker Swarm

Docker Swarm və bir çoxluqdakı bütün qabları necə idarə etdiyi və tənzimlədiyi haqqında.


Docker Swarm nədir?

Docker ocağı, Docker Mühərriklərinin bir qrupuna, buna görə də Swarm adını vermə üsuludur. Docker aparıcılarının çoxluğu menecer və işçilərdən ibarət qarmaqarışıq rejimdə işləyir. Qarmaqarışıqlarda iştirak edən docker-motor nümunələrinə qovşaqlar deyilir.

İstehsal səviyyəsində püskürtmə bir çox server arasında yayılan doker qovşaqlarından ibarətdir.

Niyə istifadə edirsiniz? – Konteyner orkestri

İstehsal mühitində işləyərkən, yüzlərlə dok doku içərisində birdən çox tətbiq işləyəcək. Bütün bu qabların idarə edilməsi bütün DevOps mühəndisləri üçün böyük bir ağrı ola bilər; burada Docker Swarm sizə kömək edir. Asanlıqla bir çox docker konteyner çalışan çoxluğu idarə edir və idarə edir.

Aşağıda onun bəzi xüsusiyyətləri var:

  • Yüksək mövcudluq – dayanma və ya kəsilmə təklif etməyi hədəfləyir.
  • Yük Balansı – hər hansı bir node uğursuz olarsa, çoxluqdakı digər qovşaqlardakı mənbələri və sorğuları avtomatik olaraq ayırın.
  • De-mərkəzləşdirilmiş – bir çox menecer qovşaqları bir istehsal mühitində çalışır; buna görə çoxluq heç vaxt tək bir idarəedici node-dan asılı deyildir.
  • Ölçülük – vahid bir dok doku əmrindən istifadə edərək, çoxluqda asanlıqla miqyaslı və ya miqyaslı-aşağı konteynerlər edə bilərsiniz.

Orkestr Docker qabları

İndi Docker Swarmın əsaslarını bildiyinizə görə, bunun həyata keçirilməsinin bir nümunəsinə baxaq.

Bu misalda, məndə aşağıdakı məlumatlar olan bir qrupda işləyən üç maşın var:

menecer1: 192.168.56.104

işçi1: 192.168.56.105

işçi2: 192.168.56.102

Sürət rejimini docker-də işə salmaq üçün menecer qovluğunda aşağıdakı əmri işləyin. Bayraq – reklam-addr çoxluqa qoşula bilən qovşaqlara özünü reklam etmək üçün istifadə olunur.

[e-poçt qorunur]: ~ $ docker süpürgə təşəbbüsü – reklam-addr 192.168.56.104

Swarm başlandı: cari node (lssbyfzuiuh3sye1on63eyixf) indi menecerdir.

Bu ocağa bir işçi əlavə etmək üçün aşağıdakı əmri işlədin:

doker qarmaqarışıq qoşulmaq –token SWMTKN-1-3h3d8qgvdlxi8tl1oqpfho9khx7i1t5nq7562s9gzojbcm9kr6-azy4rffrzou0nem9hxq4ro5am 192.168.56.104:2377

Bu ocağa bir menecer əlavə etmək üçün ‘docker oğullarına qoşulma əlaməti meneceri’ işə salın və təlimatlara əməl edin.

Yuxarıda göstərilən komanda bu qovluğa qoşulmaq üçün digər qovşaqlardan istifadə ediləcək bir mö’cüzə yaradacaqdır. Yaradılmış əlamətlə əmri kopyalayın və işçi qovşaqlarında işləyin.

İşarəni 1 node üzərində işarələmək.

[e-poçt qorunur]: ~ $ docker qarmaqarışıq qoşulmaq –token SWMTKN-1-3h3d8qgvdlxi8tl1oqpfho9khx7i1t5nq7562s9gzojbcm9kr6-azy4rffrzou0nem9hxq4ro5am 192.168.56.104:2377

Bu düyün bir işçi olaraq bir ocağa qoşuldu.

İşarəni 2 node üzərində işarələmək.

[e-poçt qorunur]: ~ $ docker qarmaqarışıq qoşulmaq –token SWMTKN-1-3h3d8qgvdlxi8tl1oqpfho9khx7i1t5nq7562s9gzojbcm9kr6-azy4rffrzou0nem9hxq4ro5am 192.168.56.104:2377

Bu düyün bir işçi olaraq bir ocağa qoşuldu.

İndi menecer node-da, çoxluqda hansı qovşaqların işlədiyini yoxlaya bilərsiniz.

[e-poçt qorunur]: ~ $ doker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION

lssbyfzuiuh3sye1on63eyixf * menecer1 Hazır Aktiv Lider 18.09.6

utdr3dnngqf1oy1spupy1qlhu işçisi1 Hazırdır 18.09.6

xs6jqp95lw4cml1i1npygt3cg işçi2 Hazırdır 18.09.6

Gəlin Dockerfile Tutorial-da istifadə etdiyimiz geekflare_mongodb doker görüntüsünü yaradaq.

docker qurmaq -t geekflare_mongodb .

Bir oğul xidməti yaratmaqla MongoDB doker görüntüsünün konteynerini işə salın. 27017, MongoDB-nin məruz qaldığı port nömrəsidir.

[e-poçt qorunur]: ~ $ docker xidməti yaratmaq – adı "Mongo-Konteyner" -səh 27017: 27017 geekflare_mongodb

image geekflare_mongodb: həzmini qeyd etmək üçün bir qeydə girmək olmur. Hər bir node geekflare_mongodb-a daxil olacaq: son müstəqil, bəlkə görüntünün müxtəlif versiyalarını işləyən müxtəlif qovşaqlara yol aça bilər..

kok58xa4zi05psh3uy6s5x9e6

ümumi tərəqqi: 1 vəzifədən 1-i

1/1: qaçış

doğrulayın: Xidmət birləşdirildi

Docker ocaq xidmətinin başlandığını yoxlayın. MODE təkrarlandı, konteynerin çoxluqdakı bütün qovşaqlarda təkrarlandığı və REPLICAS 1/1 yalnız bir oğul xidmətinin hazırda işlədildiyi deməkdir..

[e-poçt qorunur]: ~ $ doker xidməti ls

ID NÖM MODE İMZA PORTSLARINI TƏKLİF EDİR

kok58xa4zi05 Mongo-Konteyner təkrarlanır 1/1 geekflare_mongodb: son *: 27017->27017 / tcp

Bu vahid xidmətin çoxluqdakı hansı qovluğu işlədiyini yoxlayaq. Manager1 node-da işləyir.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

jgqjo92rbq23 Mongo-Konteyner.1 geekflare_mongodb: son menecer1 Bir dəqiqə əvvəl qaçan

Bu oğul xidməti işlədən konteyner haqqında daha çox məlumat əldə etmək üçün docker ps əmrini işə salın.

[e-poçt qorunur]: ~ $ doker ps

ƏLAQƏ ID ID ŞƏHƏRİ YARADILDI STATUS PORTS adları

05d77e7b4850 geekflare_mongodb: ən son   "/ bin / sh -c usr / bin /…"   2 dəqiqə əvvəl 2 dəqiqə 27017 / tcp Mongo-Konteyner.1.jgqjo92rbq23sv01hrufdigtx

Ocaq xidmətini işə sala bilərsiniz “Qlobal” rejimi də əvəzinə standart “təkrarlanan” rejimi. Qlobal rejim çoxluqdakı bütün qovşaqlarda gəzinti xidmətinin bir tapşırığını yerinə yetirir.

Xidməti qlobal rejimdə işə salmadan əvvəl, mövcud işləyən konteyneri çıxartmağa icazə verin.

[e-poçt qorunur]: ~ $ docker xidməti rm Mongo-Konteyner

Mongo-Konteyner

Qoşulmuş bayraqdan istifadə edərək qlobal rejimdə docker konteynerinin içərisində qasırğa xidmətinə başlayın.

[e-poçt qorunur]: ~ $ docker xidməti yaratmaq – adı "Mongo-Konteyner" -p 27017: 27017 – qlobal geekflare_mongodb

image geekflare_mongodb: həzmini qeyd etmək üçün bir qeydə girmək olmur. Hər bir node geekflare_mongodb-a daxil olacaq: son müstəqil, bəlkə görüntünün müxtəlif versiyalarını işləyən müxtəlif qovşaqlara yol aça bilər..

mfw8dp0zylffppkllkcjl8391

ümumi tərəqqi: 3 vəzifədən 3-ü

utdr3dnngqf1: qaçış

lssbyfzuiuh3: qaçış

xs6jqp95lw4c: qaçış

doğrulayın: Xidmət birləşdirildi

Ocaq xidmətinin qlobal rejimdə başladığını yoxlayın. Çoxluqda üç qovşaq (1 menecer, 2 işçi) çalışdığından replikaların sayı 3-dür.

[e-poçt qorunur]: ~ $ doker xidməti ls

ID NÖM MODE İMZA PORTSLARINI TƏKLİF EDİR

mfw8dp0zylff Mongo-Konteyner qlobal 3/3 geekflare_mongodb: son *: 27017->27017 / tcp

3 xidmət indi 3 qovşaq boyunca işləyir, aşağıdakı əmri işlədərək yoxlayın.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

zj2blvptkvj6 Mongo-Konteyner.xs6jqp95lw4cml1i1npygt3cg geekflare_mongodb: son işçi2 Bir dəqiqə əvvəl qaçış

3eaweijbbutf Mongo-Konteyner.utdr3dnngqf1oy1spupy1qlhu geekflare_mongodb: son işçi1 Bir dəqiqə əvvəl qaçan

yejg1o2oyab7 Mongo-Konteyner.lssbyfzuiuh3sye1on63eyixf geekflare_mongodb: son menecer1 Bir dəqiqə əvvəl qaçan

Sonra, replikaların sayını necə müəyyənləşdirə biləcəyinizi göstərim. Bundan əvvəl, işləyən mövcud konteyneri sökəcəyəm.

[e-poçt qorunur]: ~ $ docker xidməti rm Mongo-Konteyner

Mongo-Konteyner

Komanda istifadə edin – replikalar bayrağını istifadə edin və ocaq xidmətindən istədiyiniz replikaların sayını qeyd edin. Məsələn, oğullar xidmətinin iki nüsxəsinə sahib olmaq istəyirəm:

[e-poçt qorunur]: ~ $ docker xidməti yaratmaq – adı "Mongo-Konteyner" -səh 27017: 27017 –replicas = 2 geekflare_mongodb

image geekflare_mongodb: həzmini qeyd etmək üçün bir qeydə girmək olmur. Hər bir node geekflare_mongodb-a daxil olacaq: son müstəqil, bəlkə görüntünün müxtəlif versiyalarını işləyən müxtəlif qovşaqlara yol aça bilər..

4yfl41n7sfak65p6zqwwjq82c

ümumi tərəqqi: 2 vəzifədən 2-si

1/2: qaçış

2/2: qaçış

doğrulayın: Xidmət birləşdirildi

Hal hazırda işləyən ocaq xidmətlərini yoxlayın. Bir replikanın menecer1 node-da, digərinin isə işçi1 node-da işlədiyini görə bilərsiniz.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

xukodj69h79q Mongo-Konteyner.1 geekflare_mongodb: son işçi1 Qaçış 9 saniyə əvvəl

e66zllm0foc8 Mongo-Konteyner.2 geekflare_mongodb: son menecer1 9 saniyə əvvəl qaçan

İşçi1 node-a gedin və dok dokunun konteynerinin ocaq xidmətini işlədiyini yoxlayın.

[e-poçt qorunur]: ~ $ doker ps

ƏLAQƏ ID ID ŞƏHƏRİ YARADILDI STATUS PORTS adları

5042b7f161cb geekflare_mongodb: ən son   "/ bin / sh -c usr / bin /…"   Bir dəqiqə əvvəl Təxminən bir dəqiqə 27017 / tcp Mongo-Konteyner.1.xukodj69h79q3xf0pouwm7bwv

Bu konteyneri dayandırmaq üçün aşağıdakı əmri işləyin.

[e-poçt qorunur]: ~ $ docker dayanacağı 5042b7f161cb

5042b7f161cb

İndi meneceri1 node-dan, xidmətin hansı düyünlərin işlədiyini yoxlayırsınızsa, onun menecer1 node və işçi2 node üzərində işlədiyini görəcəksiniz. İşçi1 nodunun GÜNÜN DÖVLƏT bağlanması (xidmət işlədiyi konteyneri dayandırdığımız üçün). Bu xidmətin iki nüsxəsi işləməli olduğundan, 2-də ikinci bir xidmət başladı.

Docker ocağından istifadə edərək yüksək mövcudluğa necə nail olmağınız belədir.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

cd2rlv90umej Mongo-Konteyner.1 geekflare_mongodb: son işçi2 30 saniyə əvvəl çalışan

xukodj69h79q \ _ Mongo-Konteyner.1 geekflare_mongodb: son işçi1 Bağışlanma 38 saniyə əvvəl uğursuz oldu    "tapşırıq: sıfır olmayan çıxış (137)"

e66zllm0foc8 Mongo-Konteyner.2 geekflare_mongodb: son menecer1 Qaçış 3 dəqiqə əvvəl

Docker qablarını böyütmək və ya aşağı salmaq çox asandır. Aşağıdakı əmr mongo qabını 5-ə qədər böyütəcəkdir.

[e-poçt qorunur]: ~ $ docker xidmət miqyası Mongo-Container = 5

Mongo-Konteyner 5-ə ölçülür

ümumi tərəqqi: 5 vəzifədən 5-i

1/5: qaçış

2/5: qaçış

3/5: qaçış

4/5: qaçış

5/5: qaçış

doğrulayın: Xidmət birləşdirildi

Mongo qabının neçə replikası işlədiyini yoxlayın, 5 olmalıdır.

[e-poçt qorunur]: ~ $ doker xidməti ls

ID NÖM MODE İMZA PORTSLARINI TƏKLİF EDİR

4yfl41n7sfak Mongo-Konteyner təkrarlanmış 5/5 geekflare_mongodb: son *: 27017->27017 / tcp

Bu 5 replikanın çoxluqda harada işlədiyini yoxlayın. 1 replika menecer1 düyünündə və hər ikisi işçi qovşaqlarında 2 replikada işləyir.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

cd2rlv90umej Mongo-Konteyner.1 geekflare_mongodb: son işçi2 Qaçış 2 dəqiqə əvvəl

xukodj69h79q \ _ Mongo-Konteyner.1 geekflare_mongodb: son işçi1 Bağışlanma uğursuz 2 dəqiqə əvvəl     "tapşırıq: sıfır olmayan çıxış (137)"

e66zllm0foc8 Mongo-Konteyner.2 geekflare_mongodb: son menecer1 Qaçış 5 dəqiqə əvvəl

qmp0gqr6ilxi Mongo-Konteyner.3 geekflare_mongodb: son işçi2 47 saniyə əvvəl çalışan

9ddrf4tsvnu2 Mongo-Konteyner.4 geekflare_mongodb: son işçi1 46 saniyə əvvəl çalışan

e9dhoud30nlk Mongo-Konteyner.5 geekflare_mongodb: son işçi1 Qoşulan 44 saniyə əvvəl

Çoxluqda, xidmətlərinizin idarəedici node (lar) üzərində işləməsini istəmirsinizsə və yalnız qovşaqları idarə etmək üçün saxlamaq istəsəniz, menecer qovluğunu boşaltmaq olar.

[e-poçt qorunur]: ~ $ doker node yeniləmə – mövcudluğu drenaj meneceri1

menecer1

Menecer nodunun mövcudluğunu yoxlayın.

[e-poçt qorunur]: ~ $ doker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION

lssbyfzuiuh3sye1on63eyixf * menecer1 Hazır Drenaj Lideri 18.09.6

utdr3dnngqf1oy1spupy1qlhu işçisi1 Hazırdır 18.09.6

xs6jqp95lw4cml1i1npygt3cg işçi2 Hazırdır 18.09.6

Xidmətlərin artıq menecer qovluğunda işləmədiyini görəcəksiniz; çoxluqdakı işçi qovşaqlarına yayılırlar.

[e-poçt qorunur]: ~ $ docker xidməti ps Mongo-Konteyner

ID NOM İMZA NODE DÖVLƏTDƏ GÖRÜŞ DÖVLƏT XATİ SORĞU PORTLARINI TƏLƏB EDİR

cd2rlv90umej Mongo-Konteyner.1 geekflare_mongodb: son işçi2 5 dəqiqə əvvəl çalışan

xukodj69h79q \ _ Mongo-Konteyner.1 geekflare_mongodb: son işçi1 Bağlantı 5 dəqiqə əvvəl uğursuz oldu      "tapşırıq: sıfır olmayan çıxış (137)"

qo405dheuutj Mongo-Konteyner.2 geekflare_mongodb: son işçi1 41 saniyə əvvəl qaçış

e66zllm0foc8 \ _ Mongo-Konteyner.2 geekflare_mongodb: son menecer1 Kapatma 44 saniyə əvvəl

qmp0gqr6ilxi Mongo-Konteyner.3 geekflare_mongodb: son işçi2 Qaçış 3 dəqiqə əvvəl

9ddrf4tsvnu2 Mongo-Konteyner.4 geekflare_mongodb: son işçi1 Qaçış 3 dəqiqə əvvəl

e9dhoud30nlk Mongo-Konteyner.5 geekflare_mongodb: son işçi1 Qaçış 3 dəqiqə əvvəl

Bu Docker Swarm və doker ovu rejimində konteynerlərin necə qurulması barədə idi. Bunun necə işlədiyinə dair bir fikir əldə etmək üçün qeyri-istehsal mühitinizdə sınayın.

TAGS:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map