Sobes.tech
Middle+

Fərqli domenlər və zonalar üçün saxlama girişini təmin etmək üçün davamlı həcm müxtəlif zonalara necə paylanır?

sobes.tech Süni İntellekt

AI-dan cavab

Kubernetes və ictimai buludlar (məsələn, AWS, GCP, Azure) istifadə edildikdə, persistent volumes (PV) bölgələr üzrə paylanması bulud provayderi və PV-nin düyünlərə bağlanması səviyyəsində həyata keçirilir:

  1. PV-nin yaradılması: Persistent volume (PersistentVolume) administrator tərəfindən və ya StorageClass vasitəsilə avtomatik yaradılır. Yaradılarkən saxlama parametrləri göstərilir: növü (EBS, GCE Persistent Disk, Azure Disk), ölçüsü, giriş rejimi.
  2. Zona/Region Fəaliyyəti: Buludda müəyyən saxlama növləri üçün StorageClass bölgə mövcudluğu dəstəyi ilə tənzimlənə bilər (Availability Zones). Belə StorageClass ilə PV yaradıldıqda, bulud provayderi fiziki saxlama resursunu müəyyən bir zonada yerləşdirə və ya zonalararası redundans təmin edə bilər (saxlama növü və tənzimləmələrdən asılı olaraq). volumeBindingMode: WaitForFirstConsumer parametri ilə StorageClass PV və PVR bağlamasını ilk istifadə edən pod müəyyən bir zonada planlaşdırıldıqda, bağlamanın gecikdirilməsinə imkan verir.
  3. PersistentVolumeClaim (PVC): İstifadəçi müəyyən həcm və xüsusiyyətlər üçün PersistentVolumeClaim (PVC) yaradır.
  4. PV və PVC-nin əlaqələndirilməsi: Kubernetes PVC-ni uyğun PV ilə əlaqələndirir. Əgər WaitForFirstConsumer istifadə olunursa, əlaqələndirmə ilk pod planlaşdırıldıqda baş verir.
  5. Pod-un Node-da yerləşdirilməsi: Kubernetes planlayıcısı (Scheduler) pod-un hansı node-da yerləşəcəyini müəyyən edir. Bu zaman resurs tələbləri, affinity/anti-affinity, Taints/Tolerations kimi kriteriyalar nəzərə alınır.
  6. PV-nin node-a bağlanması: PVC istifadə edən pod müəyyən bir zonada planlaşdırıldıqda, Kubernetes (Volume Controller və bulud provayderi) PV-nin həmin node üçün əlçatan olmasını təmin edir. Bulud diskleri adətən eyni zonadakı virtual maşınlara bağlanır. Kubernetes PV-nin zonalığını nəzərə alaraq, PV-nin bir zonadan digərinə qoşulmasının qarşısını alır.

Zona-aware StorageClass nümunəsi:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
 name: regional-storage
provisioner: kubernetes.io/aws-ebs # və ya gce-pd, microsoft.com/azure-disk və s.
parameters:
 type: gp2 # və ya ssd, pd-standard və s.
 fsType: ext4
 volumeBindingMode: WaitForFirstConsumer # Zonalar üzrə planlaşdırma üçün vacib parametr
reclaimPolicy: Retain
allowVolumeExpansion: true

volumeBindingMode: WaitForFirstConsumer istifadə edilərkən, Kubernetes pod-un müəyyən bir zonada planlaşdırıldığını gözləyir (məsələn, us-east-1a) və yalnız bundan sonra PVC və PV əlaqələndirilir və bu zonada bulud diski yaradılır.

Domenlər üzrə paylanma (daha geniş mənada, tətbiqlər və komandalar arasında məntiqi bölünmə) fiziki PV-lərin paylanması ilə deyil, RBAC (Role-Based Access Control), resurs kvotaları (Resource Quotas) və Namespace-lər vasitəsilə həyata keçirilir:

  • Namespaces: Müxtəlif domenlər/komandalar öz Namespace-lərini istifadə edərək resursların izolyasiyasını təmin edə bilər, o cümlədən PVC və podlar.
  • RBAC: İstifadəçilərin və ya qrupların müəyyən Namespace-lərdə PVC və digər resursları yaratmaq, oxumaq, yeniləmək və silmək hüququnu tənzimləyir.
  • Resource Quotas: Hər Namespace-də istifadə edilə bilən ümumi resursların (o cümlədən saxlama həcmində) məhdudiyyətlərini qoyur və "domenlər" arasında ədalətli istifadəni təmin edir.