Sobes.tech
Middle+

Kā izveidot izturīgu Kubernetes klasteri?

sobes.tech AI

Atbilde no AI

Lai izveidotu izturīgu un uzticamu Kubernetes klasteri, ir nepieciešams nodrošināt galveno komponentu un datu rezerves kopijas.

Galvenie soļi:

  1. Meistara mezgli:

    • Uzstādīt vairākus meistara mezglus (kube-apiserver komponentam), kas darbojas aiz slodzes balansētāja. Tas nodrošina API servera pieejamību pat bojājoties vienam meistara mezglam.
    • Katram meistara mezglam jābūt pieejamai kopējai klastera stāvokļa glabāšanai — etcd.
  2. etcd:

    • Uzstādīt vairākus mezglu etcd klasteri (labāk, ja to ir ne mazāk par trim), kas izvietoti dažādās zonās vai fiziskajos serveros. Tas garantē datu drošību.
  3. Slodzes balansētājs (Load Balancer):

    • Izmantot L4/L7 slodzes balansētāju, kas sadala trafiku starp kube-apiserver mezgliem.
    • Izmantot citu balansētāju, kas sadala ienākošo trafiku uz klastera lietojumprogrammām (piemēram, Ingress Controller, kas atbalsta izturību).
  4. Darba mezgli (Worker Nodes):

    • Uzstādīt pietiekamu skaitu darba mezglu, lai varētu palaist Podus.
    • Izvietot darba mezglus dažādās zonās vai fiziskajos serveros, lai nodrošinātu infrastruktūras izturību pret bojājumiem.
    • Iestatīt Pod Disruption Budgets (PDBs), lai noteiktu minimālo pieejamo Pod skaitu laikā, kad notiek brīvprātīgas pārtraukšanas (piemēram, atjauninot mezglus).
  5. Glabāšana (Storage):

    • Izmantot izplatītu vai mākoņdatošanas glabātuvi ar savu izturību, kas paredzēta Persistent Volumes.
    • Piemēri: Rook (Ceph), GlusterFS, mākoņu pakalpojumu sniedzēji (AWS EBS, GCP Persistent Disk, Azure Managed Disks) ar replikāciju.
  6. Tīkls (Networking):

    • Izmantot uzticamu CNI tīkla risinājumu (piemēram, Calico, Cilium ar replikācijām).
    • Nodrošināt savienojamību starp meistara mezgliem, etcd mezgliem un darba mezgliem.
  7. Rezerves kopijas (Backup):

    • Regulāri veidot etcd datu rezerves kopijas.
    • Izmantot rīkus kā Velero, kas ļauj kopēt un atjaunot klastera stāvokli un Persistent Volumes.

Piemērs arhitektūrai:

graph LR
    subgraph Lietotāji
        A[Lietotājs] --> B(Lietojumprogrammas trafika balansētājs)
    end

    subgraph Kubernetes klasteris
        subgraph Meistara mezgli
            C1(Meistara mezgls 1)
            C2(Meistara mezgls 2)
            C3(Meistara mezgls 3)
        end

        subgraph `etcd` klasteris
            D1(etcd 1)
            D2(etcd 2)
            D3(etcd 3)
        end

        subgraph Darba mezgli
            E1(Darba mezgls 1)
            E2(Darba mezgls 2)
            E3(Darba mezgls 3)
        end

        subgraph Glabāšana
            F(Izplatīta glabātuve)
        end

        subgraph Tīkls
            G(CNI tīkls)
        end

        B --> Bal(API servera balansētājs)
        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: Podu palaišana
        G --> E2: Podu palaišana
        G --> E3: Podu palaišana

        E1 --> B: Lietojumprogrammu tīkls
        E2 --> B: Lietojumprogrammu tīkls
        E3 --> B: Lietojumprogrammu tīkls
    end

Automatizācijas rīki, piemēram, kubeadm, Kubespray vai mākoņu pakalpojumi (EKS, GKE, AKS), palīdz izveidot izturīgu infrastruktūru.