Hoe u uw eigen Kubernetes-cluster kunt runnen met MicroK8s

0
276

MicroK8s is een lichtgewicht single-package Kubernetes-distributie ontwikkeld door Canonical, de bekendste voor het Ubuntu-besturingssysteem. MicroK8s volgt upstream Kubernetes-releases en richt zich op het bieden van een moeiteloze installatie- en beheerervaring. Hier leest u hoe u aan de slag kunt gaan met het runnen van uw eigen cluster.

Installatie

MicroK8s is beschikbaar op Linux, Windows en macOS. Een grafisch Windows-installatieprogramma wordt aangeboden op de website van het project. macOS-gebruikers moeten Brew gebruiken terwijl Linux-gebruikers worden bediend door snaps.

Volg de afzonderlijke Snap-installatiestappen als je snapd op je systeem mist. Gebruik vervolgens de opdracht snap install om MicroK8s toe te voegen:

sudo snap install microk8s –classic

< /p>

Hiermee wordt de nieuwste MicroK8s-versie geïnstalleerd. Je kunt een specifieke release selecteren met behulp van de –channel vlag:

sudo snap install microk8s –classic –channel=1.19/stable

Dit geeft je een versie van MicroK8s die is gebaseerd op Kubernetes v1.19.

Advertentie

De installatie kan even duren als de Kubernetes-services worden opgestart. Microk8s status uitvoeren –wait-ready laat je de voortgang controleren, zodat je weet wanneer MicroK8s klaar is voor gebruik.

Interactie met je cluster

MicroK8s bundelt zijn eigen versie van de Kubectl-opdrachtregeltool. Gebruik microk8s kubectl om met uw cluster te communiceren, door een normaal kubectl-commando toe te voegen:

sudo microk8s kubectl get all –all-namespaces

Deze opdracht geeft alle bronnen in uw cluster weer.

< img src="http://www.cloudsavvyit.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Maak vervolgens een basismanifest om te implementeren:

apiVersion: v1 soort: Pod-metadata: naam: my-pod spec: containers: – naam: nginx afbeelding: nginx:latest ports: – naam: http containerPort: 80 protocol: TCP

Pas het manifest toe op uw cluster:

sudo microk8s kubectl apply -f ./manifest.yaml

MicroK8s zal een nieuwe Pod maken waarop de NGINX-webserver draait. Het verschijnt wanneer u microk8s kubectl get all opnieuw uitvoert.

< /p>

MicroK8s is compatibel met alle Kubectl-commando's. Als u het microk8s-voorvoegsel wilt verwijderen, kunt u een “real” kubectl binair in plaats daarvan:

sudo microk8s kubectl configuratieweergave –raw > $HOME/.kube/config

Dit exporteert de verbindingsinformatie van de MicroK8s naar je Kubernetes-configuratiebestand, zodat gewone kubectl-commando's je cluster kunnen bereiken.

De meeste MicroK8s-commando's vereisen superuser-toegang. Voeg voor langdurig gebruik uw gebruikersaccount toe aan de microk8s-groep, zodat u sudo niet elke keer hoeft te gebruiken:

sudo usermod -aG microk8s $USER

Toegang tot Docker-afbeeldingen

MicroK8's hebben niet automatisch toegang tot uw lokale Docker-images. Als je een image die je zojuist hebt gemaakt wilt implementeren, importeer het dan handmatig in het MicroK8s-register door het te exporteren als een tar-archief.

docker save my-image:latest > my-image.tar microk8s ctr image import my-image.tar Advertentie

Nu kunnen uw Pods met succes verwijzen naar de afbeelding. U kunt alle bekende afbeeldingen in het MicroK8s-register weergeven met de opdracht microk8s ctr images ls.

Naast eenvoudig gebruik op uw lokale computer, moet u een speciaal Docker-beeldregister opzetten om uw afbeeldingen te bewaren. Duw afbeeldingen daarheen en verleen MicroK8's pull-toegang zodat het ze uit uw opslag kan halen. De te volgen stappen zijn afhankelijk van de configuratie van uw register.

Het Kubernetes-dashboard inschakelen

Het Kubernetes-webdashboard wordt gebundeld met MicroK8s maar is standaard uitgeschakeld. U kunt het activeren door de add-on in te schakelen en vervolgens naar het IP-adres van de dashboardservice te gaan.

microk8s dashboard inschakelen

Het kan even duren voordat de service is gestart. Voer microk8s kubectl get services –namespace kube-system uit en wacht tot de kubernetes-dashboard-service verschijnt. Noteer zijn CLUSTER-IP en bezoek zijn adres in uw browser. Het Kubernetes-dashboard zou moeten verschijnen, zodat u met uw bronnen kunt communiceren via een grafische interface.

Meer add-ons gebruiken

MicroK8s wordt geleverd met verschillende andere optionele add-ons voor veelvoorkomend gebruik. De dns-add-on voegt ondersteuning toe voor DNS-implementatie, opslag biedt een standaard opslagklasse op basis van hostmappen en ingress biedt een ingress-controller waarmee u Ingress-routeringsbronnen kunt maken.

Advertentie

De register-add-on is een speciale service die een gebruiksklaar Docker-register op localhost:32000 implementeert. Het gebruik van het register biedt een privé-opslagruimte waarnaar u uw afbeeldingen kunt pushen voordat u ze in uw Kubernetes-pods gebruikt. Op dezelfde manier lanceert de istio-add-on een Istio-mesh om functies voor het ontdekken van services te bieden.

Een uitgebreide beschrijving van deze add-ons wordt gegeven in de documentatie van MicroK8s. U kunt alle beschikbare add-ons in uw installatie bekijken door microk8s enable uit te voeren zonder enige argumenten. Alleen de absolute minimum Kubernetes-functionaliteit is standaard actief, aangezien MicroK8s zich richt op het bieden van een gestroomlijnde ervaring.

Uw cluster beheren

Alle clusterbeheerfuncties worden geleverd door de opdracht microk8s. De status microk8s uitvoeren toont een overzicht van uw cluster, inclusief of het actief is en de lijst met actieve add-ons.

Als u uw cluster wilt afsluiten, voert u microk8s stop uit. Hierdoor worden alle services stopgezet en wordt alles offline gehaald. U start het cluster opnieuw op met de opdracht microk8s start. Het kan even duren voordat al uw services actief zijn.

U kunt de details van uw clusterverbinding bekijken door microk8s config uit te voeren. Dit zendt een Kubectl-compatibel YAML-bestand uit, klaar voor gebruik met andere tools.

Door microk8s reset uit te voeren, wordt uw cluster teruggezet naar de oorspronkelijke status na installatie. Dit is een destructieve tijdrovende operatie die al uw bronnen zal vernietigen. Het vergemakkelijkt het experimenteren door je alles te laten afbreken, zonder de MicroK8s-snap te verwijderen. Kubernetes-opslagvolumes worden standaard behouden; je kunt ze ook verwijderen door de vlag –destroy-storage toe te voegen.

Multi-Node Clusters

Hoewel MicroK8s begon als een single-node project, kunt u nu secundaire knooppunten aan uw cluster toevoegen. Extra nodes zorgen voor redundantie en een grotere werklastcapaciteit. Elk knooppunt vereist zijn eigen volledig geïsoleerde omgeving – ofwel een afzonderlijke fysieke machine, VM of container. U kunt geen twee MicroK8s worker-instanties in dezelfde omgeving uitvoeren.

Advertentie

Voer eerst microk8s add-node uit op uw originele node. Dit wordt de controlerende master die het Kubernetes-besturingsvlak uitvoert.

microk8s add-node

< /p>

De opdracht maakt een voorlopige registratie voor het nieuwe knooppunt. Het zal een microk8s join-opdracht uitvoeren die het knooppunt met het besturingsvlak verbindt. Het deelnameproces duurt enkele seconden. Het knooppunt moet uw master kunnen bereiken via het weergegeven netwerkadres.

Zodra het knooppunt is toegevoegd, komt het in aanmerking om uw pods te hosten. Je kunt alle beschikbare nodes bekijken door microk8s kubectl get nodes uit te voeren.

Het verwijderen van een knooppunt uit het cluster is een oefening in omkering. Voer eerst microk8s leave uit op het doelknooppunt. Voer vervolgens microk8s remove-node 10.108.0.1 uit op de master, waarbij u het IP-adres van het verwijderde knooppunt vervangt. Hiermee worden alle andere knooppunten op de hoogte gesteld van de verwijdering. Het doelknooppunt keert terug naar een normale standalone MicroK8s-installatie en wordt zijn eigen master.

Conclusie

MicroK8s is een minimale Kubernetes-distributie die gemakkelijk zelf kan -gehost op uw eigen hardware. Het is volledig CNFC-compatibel en wordt geleverd met ingebouwde add-ons voor het officiële Kubernetes-dashboard, Ingress-routering en de Istio-servicemesh. Deze helpen u snel uw eigen productieklare cluster op te zetten die in staat is te matchen met het beheerde Kubernetes-aanbod van openbare cloudproviders.

Advertentie

MicroK8s ondersteunt een bijzonder breed scala aan hardware- en implementatiearchitecturen. Het werkt op werkstations voor ontwikkelaars, in productieomgevingen met hoge beschikbaarheid en op de Raspberry Pi. Deze flexibiliteit stelt u in staat exact dezelfde technologie te gebruiken in ontwikkeling en productie, zelfs tot aan de Kubernetes-implementatie toe.

Vergeleken met concurrerende projecten zoals Minikube, blinkt MicroK8s uit in het draaien in omgevingen met beperkte middelen met minimale overheadkosten. Het profiteert van zijn eigen containerisatie, met behulp van het snap-pakketformaat, dus er is geen zware VM om te draaien. Dit geeft je meer capaciteit om je workloads en andere ontwikkelaarstools te hosten.

Terwijl MicroK8s begon als een op ontwikkelaars gericht project, gericht op lokale testen en prototyping, wordt het nu gefactureerd als een productie- kant-en-klare Kubernetes-distributie met een bewezen staat van dienst voor het nauwlettend volgen van upstream-releases. Clusters kunnen worden geüpgraded naar nieuwe Kubernetes-releases met behulp van de microk8s-opdracht snap refresh.