CodeGym /Kurslar /Docker SELF /Servislərin miqyaslandırılması

Servislərin miqyaslandırılması

Docker SELF
Səviyyə , Dərs
Mövcuddur

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ı:

  1. 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ı.
  2. 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.
  3. 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.

Yaml

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:

Terminal


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.

Terminal


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:

Yaml

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:

Terminal


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:

Yaml

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:

Terminal


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:

Terminal


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:

Terminal

        
docker compose down

Məsləhətlər və tövsiyələr:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION