11 tools die Kubernetes beter maken

11 tools die Kubernetes beter maken

Niet alle serverplatforms, zelfs de krachtigste en meest schaalbare, voldoen in hun huidige vorm aan alle behoeften. Hoewel Kubernetes op zichzelf prima werkt, ontbreken mogelijk de juiste onderdelen om compleet te zijn. U zult altijd een speciaal geval tegenkomen dat uw behoefte negeert, of waarin Kubernetes niet zal werken in de standaardinstallatie, bijvoorbeeld database-ondersteuning of cd-bediening.

Hier verschijnen toevoegingen, uitbreidingen en andere goodies voor deze containerorkestrator, ondersteund door een brede community. In dit artikel zullen er 11 van de beste dingen zijn die we hebben gevonden. Wijzelf erin Southbridge ze zijn erg interessant, en we zijn van plan er praktisch mee om te gaan: haal ze uit elkaar in schroeven en moeren en kijk wat erin zit. Sommigen van hen zullen een perfecte aanvulling vormen op elk Kubernetes-cluster, terwijl andere zullen helpen bij het oplossen van specifieke problemen die niet in het standaard Kubernetes-pakket zijn geïmplementeerd.

Poortwachter: Beleidsmanagement

Project Beleidsagent openen (OPA) biedt de mogelijkheid om beleid te creëren bovenop cloudapplicatiestacks in Kubernetes, van ingress tot service mesh. gatekeeper geeft de Kubernetes-native mogelijkheid om beleid automatisch af te dwingen in het hele cluster, en biedt ook inspectie van eventuele gebeurtenissen of bronnen die een beleid schenden. Dit alles wordt afgehandeld door een relatief nieuw mechanisme in Kubernetes, de Webhooks-toegangsmanager, die wordt geactiveerd wanneer bronnen veranderen. Met Gatekeeper wordt OPA-beleid een onderdeel van de gezondheid van uw Kubernetes-cluster, zonder dat er voortdurend toezicht nodig is.

Zwaartekracht: draagbare Kubernetes-clusters

Als u een applicatie in Kubernetes wilt implementeren, hebben veel applicaties een Helm-diagram dat dit proces begeleidt en automatiseert. Maar wat als u uw Kubernetes-cluster ongewijzigd wilt meenemen en ergens anders wilt uitrollen?

Zwaartekracht maakt momentopnamen van de status van Kubernetes-clusters, hun registers voor containerimages en actieve applicaties die ‘applicatiepakketten’ worden genoemd. Zo'n pakket, dat een normaal bestand is .tar, kan het cluster overal repliceren waar Kubernetes kan draaien.

Gravity verifieert ook dat de doelinfrastructuur zich hetzelfde gedraagt ​​als de bron, en dat de Kubernetes-omgeving op het doel beschikbaar is. De betaalde versie van Gravity voegt ook beveiligingsfuncties toe, waaronder RBAC en de mogelijkheid om beveiligingsinstellingen tussen verschillende clusterimplementaties te synchroniseren.

De nieuwste hoofdversie, Gravity 7, kan een Gravity-image uitrollen naar een bestaand Kubernetes-cluster, in plaats van een geheel nieuw cluster uit de image te laten draaien. Gravity 7 kan ook werken met clusters die zonder Gravity-image zijn geïnstalleerd. Gravity ondersteunt ook SELinux en werkt native met de Teleport SSH-gateway.

Kaniko: containers bouwen in een Kubernetes-cluster

De meeste containerimages zijn gebouwd op systemen buiten de containerstack. Soms moet u echter een image bouwen in een containerstack, bijvoorbeeld ergens in een actieve container of in een Kubernetes-cluster.

Kaniko bouwt containers binnen een containeromgeving, maar zonder afhankelijk te zijn van een containerisatiedienst, zoals Docker. In plaats daarvan extraheert Kaniko het bestandssysteem uit de basisimage, voert alle build-opdrachten uit in de gebruikersruimte bovenop het uitgepakte bestandssysteem, en maakt na elke opdracht een momentopname van het bestandssysteem.

Let op: Kaniko is momenteel (mei 2020, ca. vertaler) kunnen geen Windows-containers bouwen.

Kubecost: parameters voor de opstartkosten van Kubernetes

De meeste Kubernetes-beheertools zijn gericht op gebruiksgemak, monitoring, inzicht in gedrag binnen een pod, enz. Maar hoe zit het met het kijken naar de kosten – in dollars en centen – die gepaard gaan met het runnen van Kubernetes?

Kubecost Verwerkt Kubernetes-parameters in realtime, wat resulteert in actuele kosteninformatie van actieve clusters van grote cloudproviders, weergegeven in een dashboard met de maandelijkse kosten van elk cluster. Prijzen voor RAM, CPU-tijd, GPU en schijfsubsysteem worden uitgesplitst per Kubernetes-component (container, pod, service, etc.)

Kubecost houdt ook de kosten bij van bronnen buiten het cluster, zoals Amazon S3-buckets, hoewel dit beperkt is tot AWS. Kostengegevens kunnen naar Prometheus worden verzonden, zodat u deze kunt gebruiken om het gedrag van het cluster programmatisch te wijzigen.

Kubecost is gratis te gebruiken zolang 15 dagen aan loggegevens voldoende voor u zijn. Voor extra functies beginnen de prijzen bij $ 199 per maand voor het monitoren van 50 knooppunten.

KubeDB: gevechtsdatabases uitvoeren in Kubernetes

Databases zijn ook behoorlijk lastig om effectief op Kubernetes te draaien. Je zult Kubernetes-operators vinden voor MySQL, PostgreSQL, MongoDB en Redis, maar ze hebben allemaal nadelen. Bovendien lost de typische Kubernetes-functieset de meeste specifieke databaseproblemen niet direct op.

KubeDB helpt u bij het maken van uw Kubernetes-instructies voor databasebeheer. Het uitvoeren van back-ups, klonen, monitoring, snapshots en het maken van declaratieve databases zijn de componenten ervan. Houd er rekening mee dat functieondersteuning database-afhankelijk is. Het maken van een cluster werkt bijvoorbeeld voor PostgreSQL, maar niet voor MySQL (reeds er is, zoals terecht opgemerkt dnbstd, ca. vertaler).

Kube-monkey: Chaos-aap voor Kubernetes

De meest foutloze methode voor stresstests wordt beschouwd als willekeurige uitsplitsingen. Dat is de theorie achter Chaos Monkey van Netflix, een chaotische engineeringtool die virtuele machines en productiecontainers willekeurig afsluit om ontwikkelaars te ‘stimuleren’ om veerkrachtigere systemen te bouwen. Kube-aap - implementatie van dezelfde basistheorie van stresstesten voor Kubernetes-clusters. Het werkt door willekeurig pods te doden in het cluster dat u aanwijst, en kan ook worden geconfigureerd om met een specifiek tijdsinterval te worden uitgevoerd.

Kubernetes Ingress-controller voor AWS

Kubernetes biedt een externe load balancer en clusternetwerkservices via een zogenaamde service Ingress AWS biedt load-balancing functionaliteit, maar koppelt deze niet automatisch aan dezelfde mogelijkheden van Kubernetes. Kubernetes Ingress-controller voor AWS dicht deze kloof.

Het beheert automatisch AWS-bronnen voor elk inkomend object in het cluster, creëert load balancers voor nieuwe inkomend bronnen en verwijdert load balancers wanneer bronnen worden verwijderd. Het maakt gebruik van CloudFormation om ervoor te zorgen dat de status van het cluster consistent blijft. Het ondersteunt ook CloudWatch Alarm-instellingen en beheert automatisch andere elementen die in het cluster worden gebruikt, zoals SSL-certificaten en EC2 Auto Scaling Groups.

Kubespray: Automatische installatie van Kubernetes

Kubespray automatiseert de installatie van een productieklaar Kubernetes-cluster, van installatie op hardwareservers tot grote openbare clouds. Het maakt gebruik van Ansible (Vagrant - optioneel) om de implementatie uit te voeren en een volledig nieuw cluster met hoge beschikbaarheid te creëren met een netwerkadd-on naar keuze (zoals Flannel, Calico en andere) op de door u gekozen populaire Linux-distributie, indien geïnstalleerd op hardwareservers.

Skaffold: iteratieve ontwikkeling voor Kubernetes

schavot - een van de Google-tools die worden gebruikt om applicatie-cd's in Kubernetes te ordenen. Zodra je wijzigingen aanbrengt in de broncode, detecteert scaffold dit automatisch, begint met bouwen en implementeren en waarschuwt je als er fouten zijn. Skaffold draait volledig aan de clientzijde, dus er kunnen kleine installatie- of updateproblemen optreden. Het kan worden gebruikt met bestaande CICD-pijplijnen en kan ook worden gekoppeld aan een aantal externe bouwtools, voornamelijk Bazel van Google.

Teresa: De eenvoudigste PaaS op Kubernetes

Teresa is een applicatie-implementatiesysteem dat een eenvoudige PaaS draait bovenop Kubernetes. Gebruikers die in teams zijn georganiseerd, kunnen de applicaties waarvan zij eigenaar zijn, implementeren en beheren. Dit maakt het iets eenvoudiger voor mensen die de applicatie vertrouwen en niet met Kubernetes en al zijn complexiteiten te maken willen hebben.

Kantelen: streaming containerupdates naar Kubernetes-clusters

Kantelen, ontwikkeld door Windmill Engineering, let op wijzigingen in verschillende Dockerfiles en implementeert vervolgens geleidelijk de bijbehorende containers in een Kubernetes-cluster. In wezen kunt u uw productiecluster in realtime bijwerken door simpelweg Dockerfiles bij te werken. Tilt wordt in het cluster gebouwd, de broncode is het enige dat moet worden gewijzigd. U kunt ook een momentopname maken van de gezondheid van het cluster en foutcondities rechtstreeks vanuit Tilt vastleggen, zodat u deze met teamleden kunt delen voor foutopsporing.

PS We hebben al deze tools herhaaldelijk gebruikt Southbridge onderzocht met onze nieuwsgierige handen. Om al (hopelijk!) echte praktijken te presenteren tijdens offline intensieve cursussen in februari. Kubernetes-basis 8–10 februari 2021. En Kubernetes mega 12–14 februari. Eerlijk gezegd missen wij ook de warme en energiek geladen sfeer van offline leren. Hoe geavanceerd de technologieën ook zijn, ze kunnen de live menselijke communicatie en de bijzondere sfeer waarin gelijkgestemde mensen samenkomen niet vervangen.

Bron: www.habr.com

Voeg een reactie