Sobes.tech
Middle+

Kubernetes dayanıqlı klasteri necə yaratmaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Dayanıqlı Kubernetes klasteri yaratmaq üçün əsas komponentlərin və məlumatların ehtiyat nüsxəsini təmin etmək lazımdır.

Əsas addımlar:

  1. Master düyünləri:

    • kube-apiserver komponenti üçün bir neçə master düyünü (minimum üç) yerləşdirin və bunları yük balanslaşdırıcı arxasında işlədin. Bu, API server-in mövcudluğunu təmin edir hətta bir master düyünü sıradan çıxsa belə.
    • Hər bir master düyününün klasterin vəziyyətini saxlayan ümumi yaddaş — etcd-yə çıxışı olmalıdır.
  2. etcd:

    • Bir neçə düyündən ibarət etcd klasteri yerləşdirin (tövsiyə olunur, tək sayda, ən az üç), və bunları müxtəlif mövcudluq zonalarında və ya fiziki serverlərdə paylayın. Bu, klasterin vəziyyət məlumatlarının qorunmasını təmin edir.
  3. Yük balanslaşdırıcı:

    • API server-ə trafik paylamaq üçün L4/L7 yük balanslaşdırıcı istifadə edin.
    • Tətbiqlərə daxil olan trafiki idarə etmək üçün başqa bir yük balanslaşdırıcı istifadə edin (məsələn, Ingress Controller və ya digər yüksək mövcudluq dəstəyi ilə).
  4. İşçi düyünləri:

    • Pod-ların işləməsi üçün kifayət qədər işçi düyünləri yerləşdirin.
    • İşçi düyünlərini müxtəlif mövcudluq zonalarında və ya fiziki serverlərdə paylayın ki, infrastruktur səviyyəsində nasazlıqlara qarşı davamlılıq təmin olunsun.
    • Pod Disruption Budgets (PDBs) qurun ki, planlı fasilələr zamanı (məsələn, düyünlərin yenilənməsi) minimum sayda Pod əlçatan olsun.
  5. Saxlama:

    • Paylanmış və ya bulud əsaslı, öz ehtiyat nüsxəsini saxlayan yaddaş istifadə edin (Persistent Volumes üçün).
    • Nümunələr: Rook (Ceph), GlusterFS, bulud provayderləri (AWS EBS, GCP Persistent Disk, Azure Managed Disks) ilə replikasiya.
  6. Şəbəkə:

    • Güvənilir və ehtiyat nüsxəsini saxlayan CNI şəbəkə həllindən istifadə edin (məsələn, Calico, Cilium və ya digər replikasiyalı komponentlər).
    • Master, etcd və işçi düyünləri arasında əlaqəni təmin edin.
  7. Yedəkləmə:

    • Etcd məlumatlarının müntəzəm ehtiyat nüsxəsini çıxarın.
    • Velero kimi alətlərdən istifadə edərək klasterin və Persistent Volumes-in vəziyyətini ehtiyat nüsxəyə alın və bərpa edin.

Nümunə memarlıq:

graph LR
    subgraph İstifadəçilər
        A[İstifadəçi] --> B(Tətbiq trafiki üçün yük balanslaşdırıcı)
    end

    subgraph Kubernetes Klasteri
        subgraph Master düyünləri
            C1(Master Düyün 1)
            C2(Master Düyün 2)
            C3(Master Düyün 3)
        end

        subgraph etcd Klasteri
            D1(etcd 1)
            D2(etcd 2)
            D3(etcd 3)
        end

        subgraph İşçi düyünləri
            E1(İşçi Düyün 1)
            E2(İşçi Düyün 2)
            E3(İşçi Düyün 3)
        end

        subgraph Saxlama
            F(Paylanmış yaddaş)
        end

        subgraph Şəbəkə
            G(CNI şəbəkəsi)
        end

        B --> Bal(API-server yük balanslaşdırıcısı)
        Bal --> C1
        Bal --> C2
        Bal --> C3

        C1 <--> D1
        C1 <--> D2
        C1 <--> D3
        C2 <--> D1
        C2 <--> D2
        C2 <--> D3
        C3 <--> D1
        C3 <--> D2
        C3 <--> D3

        C1 --> G
        C2 --> G
        C3 --> G

        E1 <--> G
        E2 <--> G
        E3 <--> G

        E1 <--> F
        E2 <--> F
        E3 <--> F

        G --> E1: Podların işlədilməsi
        G --> E2: Podların işlədilməsi
        G --> E3: Podların işlədilməsi

        E1 --> B: Tətbiq trafiki
        E2 --> B: Tətbiq trafiki
        E3 --> B: Tətbiq trafiki
    end

Quraşdırma zamanı kubeadm, Kubespray və ya bulud provayderlərinin idarə olunan Kubernetes xidmətləri (EKS, GKE, AKS) kimi avtomatlaşdırma alətlərindən istifadə edilir ki, bu da ehtiyatlı və davamlı infrastruktur qurmağı asanlaşdırır.