Om du vill köra Kubernetes vid gränsen och observera att hanterade lösningar inte riktigt uppfyller dina krav kan du utforska bare-metal som ett alternativ. Det här dokumentet hjälper dig att hitta det bästa tillgängliga alternativet för ditt användningsfall när du konfigurerar Kubernetes-kluster vid gränsen.
Kommentar
Den här artikeln är inte en fullständig jämförelse. I stället presenteras potentiella vägar för att fatta beslut baserat på större kvalificerare mellan gemensamma alternativ.
Beslutsträd för Kubernetes utan operativsystem vid kanten
Referera till följande träd när du bestämmer mellan alternativen som visas nedan för Kubernetes utan operativsystem vid kanten.
Ladda ned en Visio-fil med det här flödesschemat
MicroK8s: Conformant "Low Ops" Kubernetes av Canonical
K3:er: Certifierad Kubernetes-distribution som skapats för IoT- och edge-databehandling
kubeadm: Kubernetes-verktyg för att skapa kubernetes-kluster med grunden, bra för standardberäkning (Linux/Windows)
Kommentar
Low Ops refererar till den minskade kostnaden för åtgärder när vissa operativa uppgifter abstraheras eller förenklas, till exempel automatiska uppdateringar eller förenklade uppgraderingar.
MicroK8s av Canonical
MicroK8s levereras som ett enda snap-paket som enkelt kan installeras på Linux-datorer med snapstöd. Alternativa installationer är tillgängliga för Windows, macOS och raspberry PI/ARM. När det installeras skapar MicroK8s ett kluster med en nod, som kan hanteras med MicroK8s-verktygen. Den paketeras med en egen kubectl och vissa tillägg kan vara aktiverade (till exempel helm, dns, ingress, metallb med mera). Scenarier med multinoder, Windows-noder och hög tillgänglighet (HA) stöds också.
Överväganden:
Det finns olika resurskrav beroende på var du vill köra MicroK8s. Referera till produktdokumenten för minimikrav på resurser. Till exempel:
Ubuntu: 4 GB RAM-minne, 20 GB diskutrymme
Windows: 4 GB RAM-minne, 40 GB diskutrymme
Windows-arbetsbelastningar stöds endast för MicroK8s-kluster med Calico CNI.
Varje nod i ett MicroK8s multinodkluster kräver en egen miljö att arbeta i, oavsett om det är en separat virtuell dator eller container på en enda dator eller en annan dator i samma nätverk.
Svårigheter kan uppstå när du kör MicroK8s på viss ARM-maskinvara. Referera till dokumenten för potentiella åtgärder.
K3s av Rancher
K3s är en enkel distribution av Kubernetes. K3s distribueras som en enda binär fil och levereras med inbäddade verktyg som kubectl och ctr, liknande MicroK8s.
Överväganden:
Binärfilen är mindre än 100 MB, men det finns fortfarande minimikrav på resurser beroende på ditt scenario. Referera till dokumenten för minimikrav på resurser.
SQLite3 är standardlagringssystemet, men andra alternativ stöds.
Windows-noder stöds för närvarande inte för K3s.
Ha kan uppnås med antingen en extern databas eller en inbäddad databas. K3s har lagt till fullständigt stöd för inbäddad etcd från och med version v1.19.5+k3s1.
kubeadm
Kubeadm är en vanlig vaniljinstallation av Kubernetes från grunden.
Överväganden:
Kräver 2 GiB (gibibyte) eller mer RAM-minne per dator.
Kräver minst 2 processorer på kontrollplansnoden.
Noden på kontrollplanet måste vara en dator som kör ett deb/rpm-kompatibelt Linux-operativsystem.
Kubernetes version och versionsförskjutning gäller för kubeadm och Kubernetes överlag. Kontrollera den principen om du vill veta mer om vilka versioner av Kubernetes och kubeadm som stöds.
Hantering/automatisering
När det gäller automatisering och hantering av etablering av bare metal-kluster finns det ett par alternativ att utforska: Ansible och Metal3.
Ansible är ett enkelt sätt att hantera fjärrresurser och är därför en utmärkt kandidat för att hantera och ansluta fjärrnoder till ett Kubernetes-kluster. Allt du behöver är Ansible-binärfilen som körs på en Linux-dator och SSH på fjärrdatorer. Den här metoden ger en flexibel mekanism för att köra godtyckliga skript på måldatorer, vilket innebär att du kan använda Ansible med något av de verktyg som nämns ovan.
Metal3 har en annan metod för att lösa det här problemet genom att använda liknande begrepp som kluster-API:et. Du måste instansiera ett tillfälliga kluster för att etablera och hantera kluster utan operativsystem med hjälp av inbyggda Kubernetes-objekt. I skrivande stund använder Metal3 kubeadm och stöder därför inte lätta Kubernetes-distributioner.
För hantering utöver klusteretablering bör du överväga att lära dig mer om Azure Arc-aktiverade kluster för att hantera dina kluster i Azure.
Nästa steg
Mer information finns i följande artiklar: