Opmerking vertaler.De originele tekst is geschreven door Rob Scott, de hoofd SRE-engineer van ReactiveOps, het bedrijf dat achter het aangekondigde project staat. We hechten veel waarde aan het idee van centrale validatie van wat in Kubernetes wordt ingezet, daarom volgen we soortgelijke initiatieven met veel belangstelling.

Ik ben blij om te presenteren — een open-source project dat helpt om de 'gezondheid' van een Kubernetes-cluster te behouden. We hebben Polaris ontwikkeld om de beste praktijken die binnen ReactiveOps worden gebruikt voor het veilig en betrouwbaar laten draaien van clusters voor een groot aantal klanten, te automatiseren. Het is tijd om de broncode vrij te geven.
Steeds weer waren we getuige van hoe schijnbaar kleine configuratiefouten leidden tot ernstige problemen, waardoor engineers 's nachts niet goed konden slapen. Iets heel eenvoudigs — zoals een vergeten configuratie van resource requests (resource requests) — kon auto-scaling verstoren en zelfs ertoe leiden dat workloads zonder resources kwamen te zitten. Waar eerder kleine configuratiefouten leidde tot uitval in productie, kan Polaris deze nu volledig voorkomen.
Polaris helpt om configuratieproblemen te vermijden die de stabiliteit, betrouwbaarheid, schaalbaarheid en veiligheid van uw applicaties beïnvloeden. Het maakt het eenvoudig om tekortkomingen in de configuratie van deployments te identificeren en toekomstige problemen te voorkomen. Met Polaris kunt u rustig slapen, wetende dat applicaties zijn uitgerold volgens een set goedgekeurde standaarden.
Polaris bestaat uit twee belangrijke componenten:
- een monitoring dashboard dat informatie biedt over hoe correct de bestaande deployments in het cluster zijn geconfigureerd;
- een experimentele validatie webhook die voorkomt dat deployments uitgerold worden die niet aan de aangenomen standaard voldoen.
Polaris Dashboard
Het dashboard in Polaris is ontworpen voor een eenvoudige en visuele weergave van de huidige status van deployments in Kubernetes en biedt aanbevelingen voor verbeteringen. Het biedt een compleet overzicht van het cluster en categoriseert de resultaten per categorie, namespaces en deployments.

De standaardinstellingen die in Polaris zijn vastgesteld, zijn vrij hoog, dus wees niet verrast als de beoordeling lager is dan je had verwacht. Het belangrijkste doel van Polaris is om hoge standaarden te stellen en te streven naar een uitstekende standaardconfiguratie. Als de voorgestelde configuratie te rigide lijkt, kan deze tijdens het configureren van de deployment worden aangepast, geoptimaliseerd voor specifieke werkbelastingen.
Bij de lancering van Polaris hebben we besloten niet alleen het instrument voor te stellen, maar ook de tests gedetailleerd te beschrijven die erin zijn opgenomen. Elke controle bevat een link naar de bijbehorende documentatie, waarin wordt uitgelegd waarom we dit belangrijk achten, en zijn er links naar aanvullende bronnen over dit onderwerp.
Polaris Webhook
Als het dashboard helpt om een overzicht te krijgen van de huidige configuratie van deployments, zorgt de webhook ervoor dat de standaarden worden nageleefd voor alle deployments die in het cluster worden uitgerold.
Nadat de problemen die door het dashboard zijn vastgesteld zijn verholpen, kan de webhook worden gebruikt om ervoor te zorgen dat de configuratie voortaan nooit meer onder de vastgestelde standaard zakt. De webhook staat geen deployments toe in het cluster die een aanzienlijke afwijking (niveau 'error') in de configuratie vertonen.
Het potentieel van deze webhook is inspirerend, maar om deze als productiewaardig te beschouwen, is nog zorgvuldige testing vereist. Op dit moment is het een experimentele functie en een onderdeel van een volledig nieuw Open Source-project. Aangezien het de updates van deployments kan belemmeren, gebruik het met voorzichtigheid.
Aan de slag
Ik hoop dat, omdat je nog steeds deze aankondiging leest, Polaris een tool is die nuttig voor je kan zijn. Wil je het Dashboard zelf uitproberen? Het uitrollen van het dashboard in het cluster is heel eenvoudig. Het wordt geïnstalleerd met minimale rechten (alleen-lezen), en alle gegevens blijven intern. Om het Dashboard te deployen met kubectl, voer je uit:
kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yamlNu moet je de poortdoorschakeling instellen om toegang te krijgen tot het Dashboard via lokale poort 8080:
kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80Natuurlijk zijn er veel andere manieren om Polaris te gebruiken en te deployen, ook met Helm. Hierover en veel meer kun je leren uit .
Dit is pas het begin
We zijn blij met wat we al in Polaris hebben kunnen integreren, maar het verhaal stopt hier niet. Er komen veel nieuwe tests aan die we graag willen toevoegen om de functionaliteit uit te breiden. Ook zoeken we naar de beste manier om uitzonderingsregels te implementeren op het niveau van namespaces of bronnen. Als u meer informatie over onze plannen wilt ontvangen, bekijk dan .
Als u de indruk heeft gekregen dat Polaris nuttig kan zijn, neem dan alstublieft de tijd om het uit te proberen. We staan open voor ideeën, feedback, vragen of pull requests. U kunt contact met ons opnemen via , in of naar .
P.S. van de vertaler
Lees ook op onze blog:
- «»;
- «»;
- «»;
- «».
Bron: habr.com
