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 beste beschikbare optie voor uw use-case bij het configureren van Kubernetes-clusters aan de rand.
Notitie
Dit artikel is geen volledige vergelijking; In plaats daarvan biedt het potentiële paden voor het nemen van beslissingen op basis van belangrijke kwalificatiemogelijkheden tussen algemene opties.
Beslissingsstructuur voor bare-metal Kubernetes aan de rand
Raadpleeg de volgende structuur bij het kiezen tussen de onderstaande opties voor bare-metal Kubernetes aan de rand.
Een Visio-bestand van dit stroomdiagram downloaden
MicroK8s: Conformant "Low Ops" Kubernetes by Canonical
K3s: Gecertificeerde Kubernetes-distributie gebouwd voor IoT- en Edge-computing
kubeadm: Kubernetes-hulpprogramma voor het maken van geaarde Kubernetes-clusters; goed voor standaard compute (Linux/Windows)
Notitie
Lage 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 modulepakket dat eenvoudig kan worden geïnstalleerd op Linux-machines met snap-ondersteuning. Er zijn alternatieve installaties beschikbaar voor Windows, macOS en raspberry PI/ARM. Wanneer microK8s is geïnstalleerd, wordt er een cluster met één knooppunt gemaakt, dat kan worden beheerd met de MicroK8s-hulpprogramma's. Het is verpakt met een eigen kubectl en bepaalde invoegtoepassingen kunnen worden ingeschakeld (bijvoorbeeld helm, dns, inkomend verkeer, 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. Voorbeeld:
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.
Elk knooppunt in een MicroK8s-cluster met meerdere knooppunten vereist een eigen omgeving waarin moet worden gewerkt, ongeacht of dat een afzonderlijke VIRTUELE machine of container op één computer of een andere computer in hetzelfde netwerk is.
Problemen kunnen optreden bij het uitvoeren van MicroK8s op bepaalde ARM-hardware. Raadpleeg de documenten voor mogelijke oplossingen.
K3s van 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 release v1.19.5+k3s1.
kubeadm
Kubeadm is een gewone 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 computer zijn waarop een met deb/rpm compatibel Linux-besturingssysteem wordt uitgevoerd.
Het ondersteuningsbeleid voor Kubernetes-versies en -versies is van toepassing op kubeadm en in het algemeen op Kubernetes. Controleer of het beleid wordt ondersteund voor meer informatie over welke versies van Kubernetes en kubeadm worden ondersteund.
Beheer/automatisering
Als het gaat om automatisering en beheer van het inrichten 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. U hebt alleen het binaire Ansible-bestand nodig, uitgevoerd op een Linux-computer en SSH op externe computers. Deze methode biedt een flexibel mechanisme voor het uitvoeren van willekeurige scripts op doelmachines, 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 vergelijkbare concepten te gebruiken 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: