8.1 docker compose scale
komandası
Xidmətlərin miqyaslandırılması — bu, eyni xidməti icra edən konteynerlərin nümunələrinin sayını artırmaq və ya azaltmaq prosesidir, yükləməni idarə etmək və tətbiqin dayanıqlığını təmin etmək üçün. Docker Compose-də xidmətlərin miqyaslandırılması üçün docker compose scale komandası və ya yeni versiyalarda scale parametri istifadə olunur.
Miqyaslandırmanın əsas konsepsiyaları:
- Miqyaslandırılabilirlik: Mövcud yükləməyə uyğun olaraq xidməti nümunələrinin sayını asanlıqla artırmaq və ya azaltmaq imkanı.
- Dayanıqlılıq: Bir neçə xidmət nümunəsini işə salmaq dayanıqlılığı təmin edir, çünki bir nümunənin sıradan çıxması bütün xidmətin dayanmasına səbəb olmayacaq.
- Yükləmənin balanslaşdırılması: Performansı optimallaşdırmaq üçün xidməti bir neçə nümunə arasında yükləməni bölüşdürmək.
docker compose scale
komandasının istifadəsi
Komandanın sintaksisi
docker compose scale SERVICE = NUM
Burada:
- SERVICE: miqyaslandırılması lazım olan xidmətin adı.
- NUM: başlatılacaq nümunələrin sayı.
İstifadə nümunəsi
Tutaq ki, sizin docker-compose.yml
faylınızda web xidmət tərif olunub.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
Web xidmətinin 3 nümunəsini başlatmaq üçün bu komandadan istifadə edin:
docker compose scale web=3
Qeyd. docker compose scale komandasını yerinə yetirmədən əvvəl docker compose up komandasını yerinə yetirmək lazımdır.
Yeni versiyalarda scale
parametrlindən istifadə
Docker Compose-nin yeni versiyalarında docker compose scale
komandası --scale
parametri ilə əvəz olunub və bu, up
komandası ilə birlikdə istifadə olunur.
docker compose up --scale web=3
Bu yanaşma daha məsləhətlidir, çünki xidmətləri eyni vaxtda başlatmaq və miqyaslandırmaq imkanı verir.
8.2 Praktik nümunələr
Nümunə 1: Veb-serverin miqyaslandırılması
docker-compose.yml
faylını yaradın:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80-90:80"
Xidməti işə salıb onu 3 nümunəyə miqyaslandırın:
docker compose up --scale web=3
İndi sizin 3 nümunə Nginx veb-serveriniz 80 portunda işləyəcək.
Vacib!
Əgər xidmət bir neçə nümunəyə miqyaslandırılacaqsa, bir port deyil, port aralığını göstərmək lazımdır: "80-90:80". Bu, host maşınında 10 portluq bir aralığı «rezervasiya» edəcək və xidmətin replikasını əlavə edərkən, replika üçün həmin aralıqdan bir port təyin olunacaq. Əgər bunu etməsəniz, portlar təsadüfi seçilib təyin ediləcək və əslində replikalar əlçatmaz olacaq.
Nümunə 2: Məlumat bazası ilə miqyaslandırma
docker-compose.yml
faylını yaradın:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80-90:80"
depends_on:
- db
db:
image: postgres:latest
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
Web xidmətini işə salıb onu 4 nümunəyə miqyaslandırın:
docker compose up --scale web=4
İndi sizin 4 nümunə veb-serveriniz bir PostgreSQL məlumat bazası ilə işləyəcək.
8.3 Miqyaslana bilən xidmətlərin idarə olunması
Xidmətləri miqyasladıqdan sonra Docker Compose komandalarını istifadə edərək nümunələri idarə edə bilərsiniz.
İşləyən containerlərə baxış
Bütün işləyən containerlərə baxmaq üçün docker compose ps
komandasını istifadə edin:
docker compose ps
Miqyaslanan xidmətlərin dayandırılması və silinməsi
Bütün xidmət nümunələrini dayandırmaq və silmək üçün docker compose down
komandasını istifadə edin:
docker compose down
Məsləhətlər və tövsiyələr:
- Yük balanslaması: Trafikin bir neçə xidmət nümunəsi arasında bölünməsi üçün yük balanslama vasitələrindən istifadə edin. Məsələn, bu məqsəd üçün Nginx və ya HAProxy istifadə edə bilərsiniz.
- Verilərin saxlanması: Miqyaslana bilən xidmətlər tərəfindən yaradılan məlumatların itirilməsinin qarşısını almaq üçün həmin məlumatların volume-larda və ya xarici yaddaşlarda saxlanıldığından əmin olun.
- Monitorinq: Prometheus və ya Grafana kimi monitorinq alətlərini istifadə edərək xidmətlərin performansını və vəziyyətini izləyin.
- Avtomatik miqyaslama: Kubernetes və ya Docker Swarm kimi orkestratorlar vasitəsilə yüklənməyə görə xidmətlərin avtomatik miqyaslanmasını nəzərdən keçirin.
GO TO FULL VERSION