Sobes.tech
Middle+

Kuidas luua vastupidav Kubernetes-klaster?

sobes.tech AI

Vastus AI-lt

Kuberneitsi klastra izveide ar augstu pieejamību un uzticamību prasa galveno komponentu un datu rezerves kopiju nodrošināšanu.

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 pietiekami daudz 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 Saugykla
            F(Ģeodēts 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: Programmu tīkls
        E2 --> B: Programmu tīkls
        E3 --> B: Programmu 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.