Kubernetes is uitgegroeid tot een standaardmethode om gecontaineriseerde applicaties op schaal uit te rollen. Maar als Kubernetes ons helpt om greep te krijgen op uitdijende en complexe containeruitrol, wat is er dan beschikbaar om greep te krijgen op Kubernetes? Want dit kan ook complex, onoverzichtelijk en lastig te beheren worden.
Met de groei en evolutie van Kubernetes ligt het voor de hand dat ontwikkelaars van de software zich richten op het stroomlijnen van hun product. Maar sommige mensen willen niet wachten op de dag dat Kubernetes zelf zulke features ontwikkelt en hebben, omdat het open source code is, hun eigen oplossingen gemaakt om veelvoorkomende problemen met Kubernetes in productieomgevingen aan te pakken.
Lees ook: 12 open source-tools die Docker beter maken
In dit artikel behandelen we 22 open source-projecten en third party-tools die Kubernetes op een aantal manieren versimpelen, van het versoepelen van command-line interfaces en het vereenvoudigen van syntaxis voor het uitrollen van applicaties tot het integreren met AWS en het leveren van een venster om meerdere clusters te bekijken.
1. Bitnami Cabin: Dashboard voor iOS en Android
Geen moderne webapplicatie of -dienst kan nog zonder een mobiele interface. Cabin geeft Kubernetes-beheerders een versie van Kubernetes' dashboard om te bereiken vanaf een iPhone of Android-smartphone. Veel van de functies van het Kubernetes-dashboard kun je starten vanuit Cabin, inclusief Helm Charts, het schalen van uitgerolde containers, het bekijken van pod-logs en het aanspreken van web-apps die zijn gehost binnen Kubernetes.
2. Goldpinger: Visualiseer clusters
We zijn visuele wezens en grafieken maken het ons makkelijker om uit te zoomen en naar het totaalplaatje te kijken. Gezien de complexiteit en scope van een Kubernetes-cluster kunnen we alle visuele hulp die we maar kunnen krijgen gebruiken.
Goldpinger is geopensourcet door de techafdeling van persbureau Bloomberg. Het is een simpel programma dat in een cluster draait en een interactieve kaart genereert met de relaties van alle nodes. Nodes waar het goed mee gaat worden in groen weergegeven en nodes met resource-problemen in het rood. Klik erop om details te zien. Je kunt de API met Swagger aanpassen om meer rapportages te ontvangen of andere integraties te leveren.
3. Gravity: Mobiele clusters
Als je een applicatie in Kubernetes wilt uitrollen, hebben veel apps Helm Charts om je te leiden en het proces te automatiseren. Maar wat als je een Kubernetes-cluster zoals hij is wilt pakken en ergens wilt uitrollen? Daar komt Gravity van pas, want de tool maakt snapshots van de clusters, hun containerregisters en de draaidende applicaties. De applicatiebundel is een .tar-bestand en kan de cluster repliceren op elke plek waar Kuberneter draait.
Gravity kijkt ook of de doelinfrastructuur dezelfde requirements kan ondersteunen als de bron en dat de Kubernetes-runtime daarop voldoet. De enterpriseversie van Gravity voegt daaraan beveiligingsfeatures toe, zoals rolgebaseerde toegangscontrole en de mogelijkheid om beveiligingsconfiguraties te synchroniseren op meerdere clusterdeployments.
4. K9s: CLI UI op volledig scherm
SPOG is helemaal in de mode en K9s geeft een fullscreen command-line interface voor Kubernetes-clusters. Je krijgt een overzicht van draaiende pods, logs en de uitrol in één overzicht, en met snelle toegang tot een shell. Je met gebruikers leesrechten geven op het user en namespace-niveau om K9 goed te laten functioneren.
5. Kaniko: Bouw containers in een Kubernetes-cluster
De meeste containerimages worden op een systeem buiten de containerstack om gebouwd. Soms wil je het buildproces in een containerstack uitvoeren, bijvoorbeeld binnen een draaiende container of ergens op een Kubernetes-cluster. Kaniko maakt containerbuilds in een containeromgeving, maar zonder daemon als Docker om dat te doen. De tool pakt het basisimage, pakt het bestandssysteem uit en voert alle buildopdrachten uit in de userspace bovenop het uitgepakte bestandsysteem, terwijl het snapshots maakt na elke opdracht.
Noot: Kaniko kan momenteel geen Windows-containers maken.
6. Kedge: Bondige uitroldefinities
Een van de meest voorkomende klachten van Kubernetes is hoe complex en langdradig de manifesten - de applicatiedefinities - zijn. Ze zijn vervelend om te schrijven en te onderhouden, dus het is geen wonder dat gebruikers een third party-tool zoeken om deze sores op te lossen.
Kedge biedt een simpelere, bondige syntaxis. Je geeft een simpele versie van het definitiesbestand aan Kedge en die bouwt het om naar een volledig Kubernetes-manifest. In tegenstelling to Koki Short (zie hieronder) gebruikt het geen modulaire syntaxis, maar vat het applicatiedefinities samen tot algemene snelkoppelingen.
Noot: De jongste update van Kedge stamt op het moment van schrijven uit april 2018.
7. Koki Short: Beheersbare Kubernetes-manifesten
Net als Kedge is dit een project om applicatiedefinities, of manifesten, te versimpelen. Net als met Kedge gebruikt Short een ingekorte syntaxis voor de omschrijvingen van Kubernetes-pods om deze te vertalen naar volledige Kubernetes-syntaxis. Maar in tegenstelling tot Kedge zijn de definities modulair: de details van één omschrijving kunnen op andere plekken hergebruikt worden, zodat veel pods met gemeenschappelijke elementen bondiger kunnen worden gedefinieerd.
8. Kops: Command-line beheer van clusters
Kops is ontwikkeld door het Kubernetes-team zelf en geeft je de optie om Kubernetes-clusters vanaf een command-line te beheren. Het ondersteunt clusters op AWS en Google Compute Engine, en VMware vSphere en andere omgevingen komen eraan. Behalve het automatiseren van het in de lucht brengen en neerhalen van de omgevingen zijn er meer automatiseringen toegevoegd. Je kunt bijvoorbeeld Terraform-configuraties genereren om een cluster opnieuw uit te rollen met Terraform.
9. Kubebox: Terminalconsole
Kubebox is een geavanceerde terminalconsile en het is meer dan een veredelde shell voor Kubernetes en zijn API. Het levert interactieve weergaven van het gebruik van geheugen en CPU, een lijst van pods, draaiende logs en configuratie-editors. Ook mooi is dat het beschikbaar is als standalone applicatie voor Linux, Windows en macOS.
10. Kubecost: Wat kost Kubernetes me?
De meeste administratieve tools voor Kubernetes focussen op het gebruik, monitoring, inzicht en dat soort technische zaken. Maar hoe zit het met monitoren van de kosten - als in harde euro's in plaats van resources - die je kunt verwachten? Kubecost gebruikt realtime cijfers en real-world informatie over uitgaven die gepaard gaan met het draaien van clusters bij grote cloudaanbieders en geeft een dasboardoverzicht van de maandelijkse kosten van de uitgerolde componenten.
De prijzen van GPU, GPU, geheugen en opslag worden allemaal weergegeven per Kubernetes-component (container, pod, service, deployment, et cetera). Kubecost kan ook de kosten buiten je cluster volgen, zoals S3-buckets, hoewel dit momenteel beperkt is tot AWS. Kostengegevens kunnen worden gedeeld met Prometheus, zodat je clustergedrag geautomatiseerd aan kunt passen aan deze financiële gegevens.
11. KubeDB: Productiedatabases in Kubernetes
Het is altijd al lastig geweest om databases elegant te draaien in Kubernetes en de native featureset lost de issues die je tegenkomt met databases niet direct op. KudeDB geeft een beheerder de mogelijkheid om Kubernetes-operators te maken voor het beheren van databases. Het draaien van back-ups, cloning, monitoring, maken van snapshots en het creëren van databases maken hier allemaal onderdeel van uit. Clustering wordt ook ondersteund, maar alleen voor bepaalde databases. Zo is het bijvoorbeeld geschikt voor PostgreSQL, maar (nog) niet voor MySQL.
12. Kube-monkey: Chaos Monkey voor Kubernetes
Netflix ontwikkelde Chaos Monkey als stresser die willekeurige problemen veroorzaakt om te zien of je systeem daarmee kan omgaan. Chaos Monkey schakelt willekeurig VM's en containers in productie-omgevingen uit om ontwikkelaars te stimuleren om systemen te bouwen die weerbaarder zijn. Kube-monkey is een implementatie van datzelfde idee om Kubernetes-clusters te stresstesten. Hij schakelt willekeurig pods in een cluster uit, die je specifiek hebt aangewezen, en kan worden aangepast om op specifieke momenten af te gaan.
13. Kube-ps1: Slimme opdrachtprompt
Kube-ps1 is een simpele aanvulling op Bash die de huidige Kubernetes-namespace en context weergeeft in een prompt. Kube-shell (zie nummer 15) levert dit samen met andere features, maar als je alleen de prompt wilt, is Kube-ps1 een tool met weinig overhead.
14. Kube-prompt: Interactieve client
Nog een minimalistische maar nuttige toevoeging aan de CLI is Kube-prompt. Hiermee kun je een interactieve opdrachtsessie starten met de client: je hoeft niet kubectl
te tikken voor iedere opdracht en de tool geeft autoaanvulsuggesties met contextuele informatie voor elke opdracht.
15. Kube-shell: Een shell voor de CLI
De command-line van Kubernetes is erg nuttig, maar net als met iedere CLI kan het vervelend worden om alle opties te vinden. Kube-shell gebruikt de command-line in een geïntegreerde shell die auto-aanvulling met suggesties van veelvoorkomende opdrachten geeft, inclusief suggesties van de Kubernetes-server (voor de naamgeving van services bijvoorbeeld). Het levert ook een veel robuustere functionaliteit voor geschiedenis van eerdere opdrachten, een vi-achtige bewerkingsmodus, en draaiende contextuele informatie voor user, namespace, cluster en andere details die specifiek gelden voor jouw installatie.
16. Kubespy: Realtime monitoren van resources
Kubespy van Pulumi is een diagnostische tool om wijzigingen aan een Kubernetes-resource in realtime te zien in een tekstgebaseerd dashboard. Je kunt bijvoorbeeld de wijzigingen kunnen zien die een pod doorloopt bij het starten, waarbij de definities worden geschreven naar Etcd, de pod ingepland wordt om te draaien op een node, de Kubelet te zien is op de node, waarna de pod gemarkeerd wordt als draaiend. Kubespy kun je als standalone binary of als plug-in van Kubectl draaien.
17. Kubernetes Ingress Controller for AWS
De service Ingress zorgt ervoor dat Kubernetes externe load-balancing en netwerkservices aan een cluster kan leveren. AWS heeft zelf een load-balancing functionaliteit, maar het koppelt dit niet automatisch aan Kubernetes. De Kubernetes Ingress Controller for AWS lost dat op. De Ingress Controller beheert automatisch AWS-resources voor elk Ingress-object in een cluster, maakt load-balancers voor nieuwe ingressresources en verwijdert load-balancers voor geschrapte resources, gekoppeld aan AWS CloudFormation om ervoor te zorgen dat de cluster consistent blijft. Het beheert ook automatisch andere elementen van de cluster, zoals SSL-certificaten en EC2 Scaling Groups.
18. Kube-ops-view: Dashboard voor meerdere Kubernetes
Zelf heeft Kubernetes al een nuttig dashboard voor het monitoren van algemene zaken, maar de community experimenteert met manieren om data te presenteren die specifiek nuttig is voor de admin. Kube-ops-view is zo'n experiment: het geeft een brede blik op meerdere Kubernetes-clusters die grafisch worden gerenderd en je ziet in één oogopslag het CPU- en geheugengebruik en de status van pods verspreid over de hele cluster. Je kunt geen opdrachten geven, dit is puur ten behoeve van visualisatie. Maar die zijn opvallend en efficiënt: uitstekend geschikt voor een scherm op de muur van menig beheercentrum.
19. Skaffold: Iteratieve ontwikkeling
Skaffold is een van Google's eigen tools voor Kubernetes, bedoeld om continuous development in te zetten voor Kubernetes-apps. Als je wijzigingen aanbrengt in je broncode, detecteert Skaffold dit, wordt het build- en uitrolproces afgetrapt en krijg je waarschuwingen als er fouten worden ontdekt. Skaffold draait volledig clientside. Je kunt het gebruiken in je bestaande CI/CD pipeline en integreert met een paar externe buildtools, met als belangrijkste Google's eigen Bazel.
20 Stern en Kubetail: Loggingtools
Met Stern kun je kleurgecodeerde output genereren (zoals met de opdracht tail
) van pods en containers in Kubernetes. Het is een snelle manier om alle outputs van meerdere resources in één stream te pompen zodat je die vlug kan beoordelen. Door de kleurcodering kun je in een oogopslag de verschillende streams onderscheiden. Kubetail aggregeert logs van meerdere pods in een enkele stream en geeft verschillende kleuren aan verschillende pods en containers. Maar Kubetail is een Bash-script en vereist als zodanig niets meer dan een shell.
21. Teresa: Simpele PaaS
Teresa is een applicatie-uitrolsysteem dat als een simpele PaaS draait op Kubernetes. Gebruikers worden georganiseerd ion teams en kunnen applicaties die bij ze horen uitrollen en beheren. Dat maakt het makkelijker dat mensen die applicatie toevertrouwd krijgen om ermee te werken, zonder dat je direct bij Kubernetes hoeft te zijn.
22. Tilt: Stream containerupdates naar clusters
Tilt is ontwikkeld door Windmill Engineering om wijzigingen aan Dockerfiles realtime te monitoren om deze wijzigingen gefaseerd toe te passen op specifieke containers in een Kubernetes-cluster. Het komt erop neer dat ontwikkelaars een live cluster realtime kunnen updaten door een Dockerfile te updaten. Tilt voert de build uit binnen de cluster, de enige wijzigingen die worden gepusht zijn broncode.
Kubernetes is het nieuwe modewoord.
Kubernetes is gewoon een stuk software. De naam is wel Grieks dus dat kon op deze site nog wel eens voor vuurwerk zorgen.
Het had eigenlijk "seven" moeten heten after seven-of-nine (a more attractive borg) [Link]
Zorba de Griek onderbouwt dit graag.
Je mag weer het laatste woord hebben.
[Link]
Okdoei
Engnek
Vergeet niet op OK te drukken.
OK .
Ga fietsen naar brabant.
Trouwens....... Als u denkt met sharkie te doen mee hebben dan vergist u zich.
Dus rustig aan mijn beste.
Eerst eens tot 10 tellen.
Lukt dat ?
Mooi .
Vergeet niet u zorba afsluiting.
Is een zorbatje.
getekend
zorba de griek
Vergeet niet je "is een zorbaatje erbij te schrijven" .
Enter .
Dit was te verwachten..
Uber en trol co bv.
Don't feed the trolls.
Vergeet je doei opmerking niet.
Beetje slap verhaal he, eerst hard roepen dat je weg gaat en dan niet gaan.
Wie zeg dat ik sharky ben?
Ik heb niks met sharky op.
Ik ben ook blij dat hij weg is,maar kom op mensen uitlokken.
Dat is toch een nieuwssite onwaardig?
Maar ga door met beledigen en beschuldigen.
Ik zie een trol uberbofh die mensen uitlokt.
Daar reageer ik op.
En op basman die mensen doei wenst omdat ze een mening hebben.
En dat is een mening hebben.
Dit is een ict site.
Geen weg pest site.
En dan mij sharky noemen .Kom op .Wat een armoe.
Nee joh, ga door. Van jou drukken ze binnenkort posters.
Eens kijken.. Maakt precies dezelfde categorie schrijffouten, gebruikt precies dezelfde ongebruikelijke formuleringen, hanteert hetzelfde beperkte setje scheldwoorden... maar heeft verder niets met Sharky op.
Voorts ben ik de koningin van Engeland. Ga iemand anders voor de gek houden.
Het is Jeki. zijn tweelingbroertje kwam vroeger ook verhaal halen :) ineens was zijn commentaar veranderd in sharkie.
Vergeet je zorbaatje niet.
Reageer
Preview