Kies een bare-metal Kubernetes at the edge-platformoptie

Azure Kubernetes Service (AKS)

Als u Kubernetes aan de rand wilt uitvoeren en merkt dat beheerde oplossingen niet helemaal aan uw vereisten voldoen, kunt u bare-metal als optie verkennen. Dit document helpt u bij het vinden van de best beschikbare optie voor uw use-case bij het configureren van Kubernetes-clusters aan de rand.

Notitie

Dit artikel is geen uitputtende vergelijking; In plaats daarvan biedt het potentiële paden voor het nemen van beslissingen op basis van belangrijke kwalificaties tussen algemene opties.

Beslissingsstructuur voor bare-metal Kubernetes aan de rand

Verwijs naar de volgende structuur bij het kiezen tussen de onderstaande opties voor bare-metal Kubernetes aan de rand.

Diagram met een stroomdiagram om te bepalen welke bare-metalopties u wilt gebruiken.

Een Visio-bestand van dit stroomdiagram downloaden

  • MicroK8s: Conforme "Low Ops" Kubernetes door Canonical

  • K3s: gecertificeerde Kubernetes-distributie gebouwd voor IoT- en edge-computing

  • kubeadm: Kubernetes-hulpprogramma voor het maken van gemalen Kubernetes-clusters; geschikt voor standaard compute (Linux/Windows)

Notitie

Low Ops verwijst naar de lagere kosten van bewerkingen wanneer sommige operationele taken worden geabstraheerd of eenvoudiger worden gemaakt, zoals automatische updates of vereenvoudigde upgrades.

MicroK8s van Canonical

MicroK8s wordt geleverd als één snap-pakket dat eenvoudig kan worden geïnstalleerd op Linux-machines met snap-ondersteuning. Er zijn alternatieve installaties beschikbaar voor Windows, macOS en Raspberry PI/ARM. Na installatie maakt MicroK8s een cluster met één knooppunt, dat kan worden beheerd met de MicroK8s-hulpprogramma's. Het is verpakt met een eigen kubectl en bepaalde invoegtoepassingen kunnen zijn ingeschakeld (bijvoorbeeld helm, dns, ingress, metallb en meer). Scenario's met meerdere knooppunten, Windows-knooppunten en hoge beschikbaarheid (HA) worden ook ondersteund.

Overwegingen:

  • Er zijn verschillende resourcevereisten, afhankelijk van waar u MicroK8s wilt uitvoeren. Raadpleeg de productdocumenten voor minimale resourcevereisten. Bijvoorbeeld:

    • Ubuntu: 4 GB RAM, 20 GB schijfruimte

    • Windows: 4 GB RAM, 40 GB schijfruimte

  • Windows-workloads worden alleen ondersteund voor MicroK8s-clusters met Calico CNI.

  • Voor elk knooppunt in een MicroK8s-cluster met meerdere knooppunten is een eigen omgeving vereist, ongeacht of dit een afzonderlijke VM of container is op één computer of een andere computer in hetzelfde netwerk.

  • Er kunnen problemen optreden bij het uitvoeren van MicroK8s op bepaalde ARM-hardware. Raadpleeg de documenten voor mogelijke oplossingen.

K3s door Rancher

K3s is een lichtgewicht distributie van Kubernetes. K3s wordt geïmplementeerd als één binair bestand en wordt geleverd met ingesloten hulpprogramma's zoals kubectl en ctr, vergelijkbaar met MicroK8s.

Overwegingen:

  • Het binaire bestand is minder dan 100 MB, maar er zijn nog steeds minimale resourcevereisten, afhankelijk van uw scenario. Raadpleeg de documenten voor minimale resourcevereisten.

  • SQLite3 is het standaardopslagsysteem, hoewel andere opties worden ondersteund.

  • Windows-knooppunten worden momenteel niet ondersteund voor K3's.

  • Hoge beschikbaarheid kan worden bereikt met een externe database of een ingesloten database. K3s heeft volledige ondersteuning toegevoegd voor ingesloten etcd vanaf versie v1.19.5+k3s1.

kubeadm

Kubeadm is een eenvoudige vanille-installatie van Kubernetes vanaf de grond.

Overwegingen:

  • Vereist 2 GiB (gibibytes) of meer RAM per machine.

  • Vereist ten minste 2 CPU's op het besturingsvlakknooppunt.

  • Het besturingsvlakknooppunt moet een machine zijn met een linux-besturingssysteem dat compatibel is met deb/rpm.

  • Het ondersteuningsbeleid voor kubernetes-versie en versieverschil is van toepassing op kubeadm en op Kubernetes in het algemeen. Controleer dat beleid voor meer informatie over welke versies van Kubernetes en kubeadm worden ondersteund.

Beheer/automatisering

Als het gaat om automatisering en beheer van de inrichting van bare-metalclusters, zijn er een aantal opties om te verkennen: Ansible en Metal3.

Ansible biedt een eenvoudige manier om externe resources te beheren en is daarom een uitstekende kandidaat voor het beheren en koppelen van externe knooppunten aan een Kubernetes-cluster. Alles wat u nodig hebt, is het binaire bestand Ansible, dat wordt uitgevoerd op een Linux-computer en SSH op externe computers. Deze methode biedt een flexibel mechanisme voor het uitvoeren van willekeurige scripts op doelcomputers, wat betekent dat u Ansible kunt gebruiken met een van de hierboven genoemde hulpprogramma's.

Metal3 heeft een andere benadering om dit probleem op te lossen door gebruik te maken van vergelijkbare concepten als cluster-API. U moet een kortstondig cluster instantiëren om bare-metalclusters in te richten en te beheren met behulp van systeemeigen Kubernetes-objecten. Op het moment van schrijven maakt Metal3 gebruik van kubeadm en biedt daarom geen ondersteuning voor lichtgewicht Kubernetes-distributies.

Voor beheer buiten het inrichten van clusters kunt u overwegen om meer te weten te komen over clusters met Azure Arc om uw clusters in Azure te beheren.

Volgende stappen

Raadpleeg voor meer informatie de volgende artikelen: