Ladda Kubernetes med dessa fantastiska verktyg

By rik

I denna artikel kommer vi att utforska ett urval av kraftfulla verktyg som kan integreras med Kubernetes för att utöka dess funktionalitet.

När du arbetar inom ett DevOps-ekosystem blir det tydligt hur avgörande det är att ha effektiva verktyg för att underlätta manuella uppgifter. Det finns en mängd olika DevOps-verktyg tillgängliga för varje steg i processen och med diverse funktioner.

Kubernetes är en grundläggande komponent om du är verksam inom DevOps och kör dina applikationer i containers. Det finns en stor mängd verktyg som fungerar tillsammans med Kubernetes för att addera ytterligare kapacitet. Vi talar om verktyg för förbättrad hantering, säkerhet, instrumentpaneler och övervakning av Kubernetes-kluster.

Här är en sammanställning av några av de mest användbara verktygen som kan ge extra kraft till dina Kubernetes-lösningar.

Låt oss sätta igång!

Helm

Helm är en pakethanterare för Kubernetes som förenklar processen att hantera applikationer och tjänster som är återanvändbara eller används i många olika sammanhang. Detta gör det enklare att distribuera dem till ett typiskt Kubernetes-kluster. Med hjälp av Helm kan du upptäcka, dela och nyttja programvara som är designad för Kubernetes.

Den använder så kallade Helm Charts för att definiera, installera och uppgradera komplexa Kubernetes-applikationer.

Här är några av Helms funktioner:

  • Hantera komplexiteten i Kubernetes-applikationer genom att använda diagram.
  • Använd uppgraderingar och anpassade ”hooks” för att enkelt göra uppdateringar.
  • Diagram kan enkelt delas på offentliga eller privata servrar.
  • Enkel återställning med bara ett kommando.
  • Förbättrar produktiviteten för utvecklare och ökar den operativa beredskapen.

Flagger

Flagger är en progressiv leveransoperatör för Kubernetes.

Den automatiserar utrullningen av kanarieversioner med hjälp av Istio, App Mesh, Nginx, Linkerd, Contour, Gloo och Skipper för trafikstyrning och Prometheus för kanarieanalys. I kanarieutrullning distribueras releaser till en liten grupp användare för testning. Om det fungerar bra rullas releasen ut till alla.

Flagger använder tjänstemesh som körs i ditt kluster för att hantera trafiken mellan olika distributioner. För att flytta trafik till kanarieversionen mäter den prestandaindikatorer som genomsnittlig svarstid för förfrågningar, framgångsfrekvensen för HTTP-förfrågningar och hälsotillståndet hos poddarna.

Flagger kan automatisera applikationsanalys, utrullning och återställning för olika distributionsstrategier, inklusive kanarieutrullning, A/B-testning och blue/green-distribution.

Kubewatch

Kubewatch är en öppen källkod Kubernetes-övervakare som skickar meddelanden via en Slack-kanal.

Den är skriven i Go och utvecklad av Bitnami Labs. Den används för att bevaka Kubernetes-resurser och meddelar vid eventuella förändringar.

Du kan installera Kubewatch via `kubectl` eller genom att använda Helm-diagram. Det är enkelt att förstå och har ett användarvänligt gränssnitt. Utöver Slack stöds även HipChat, Mattermost, Flock, webhook och SMTP.

Beroende på vilka Kubernetes-resurser du vill övervaka kan du ställa in `true` eller `false` i ConfigMap-filen. När du har konfigurerat Kubewatch och kör en pod kommer du att börja ta emot meddelanden om Kubernetes-händelser, som i exemplet nedan.

Gitkube

Gitkube är ett verktyg som använder `git push` för att bygga och distribuera Docker-bilder på Kubernetes. Den har tre huvudkomponenter: fjärrkontroll, gitkube-kontroller och gitkubed. Fjärrkontrollen består av anpassade resurser som hanteras av gitkube-kontroller. Gitkube-kontroller skickar sedan ändringarna till gitkubed, som bygger Docker-bilden och distribuerar den.

Här är några av Gitkubes funktioner:

  • Lätt att installera, plug and play.
  • Ger rollbaserad åtkomstkontroll för ökad säkerhet.
  • Enkel autentisering med en offentlig nyckel.
  • Stöd för flera användare i ett namnutrymme.
  • Inga extra beroenden förutom `kubectl` och git.

kube-state-metrics

kube-state-metrics är en tjänst som genererar mätvärden genom att lyssna på Kubernetes API-server. Den används för att kontrollera tillståndet för olika objekt som noder, poddar, namnutrymmen och distributioner. Den ger dig rå, oförändrad data från Kubernetes API.

Nedan listas den information som tillhandahålls av kube-state-metrics:

  • Status för Cron-jobb och vanliga jobb.
  • Status för poddarna (klar, igång, etc.).
  • Resursförfrågningar och gränser.
  • Nodkapacitet och status.
  • Specifikationer för replikuppsättningar.

Kamus

Kamus är ett GitOps-verktyg med öppen källkod som används för att kryptera och dekryptera hemligheter för Kubernetes-applikationer. De krypterade hemligheterna kan endast dekrypteras av applikationer som körs i Kubernetes-klustret. Den använder AES, Google Cloud KMS och Azure KeyVault för kryptering. Du kan komma igång med Kamus med hjälp av Helm.

Kamus består av två verktyg: Kamus CLI och Kamus init container. Kamus CLI används för att integrera med krypterings-API, och Kamus init-container används för integrering med dekrypterings-API.

Kubernetes-hemligheter i klartext är inte krypterade, utan endast base64-kodade. Du kan inte spara dem i Git som de är, eftersom det inte är säkert. Alla med tillgång till arkivet kan använda dessa hemligheter. Därför behövs en ordentlig krypterings- och dekrypteringslösning som Kamus. Den erbjuder också en hotmodell som skyddar hemligheter.

Untrak

Untrak är ett verktyg med öppen källkod som används i Kubernetes för att hitta ospårade resurser och ta bort dem. Det hjälper dig att upptäcka och ta bort filer från klustret som inte längre spåras.

När du har skickat in manifesten till din CI/CD-pipeline via `kubectl apply` eller Helm-mallar, vet Kubernetes inte när objektet tas bort från arkivet. När objekten väl har tagits bort spåras de inte längre och kvarstår i Kubernetes-klustret.

Untrak kör kommandon internt med hjälp av en enkel konfigurationsfil `untrak.yaml` för att identifiera resurser som inte längre finns i din källkodshantering.

Scope

Weave Scope används för att visualisera, övervaka och felsöka Docker och Kubernetes.

Det visar en detaljerad bild av din containerbaserade applikation och den underliggande infrastrukturen, vilket gör det lättare att identifiera och diagnostisera problem.

Att köra mikrotjänstapplikationer i Docker-containers kan vara utmanande. Komponenterna är dynamiska och svåra att övervaka. Med hjälp av Weave Scope kan du enkelt felsöka minnesläckor, kontrollera CPU-användning och visualisera nätverksflaskhalsar.

Här är några av Scope’s funktioner:

  • Övervaka dina Docker-containers i realtid.
  • Enkel navigering mellan processer som körs i containers.
  • Visar CPU- och minnesanvändning per värd eller tjänst.
  • Starta om, stoppa eller pausa containers med CLI utan att lämna webbläsarfönstret för Scope.
  • Stöder anpassade plugins för att få mer information om containers, processer och värdar.

Kubernetes Dashboard

Kubernetes Dashboard är ett webbgränssnitt som tillhandahålls av Kubernetes. Det används för att distribuera, felsöka och hantera containeriserade applikationer i Kubernetes-kluster. Det tillhandahåller information om klustret, inklusive detaljer om noder, namnutrymmen, roller och arbetsbelastningar.

Du kan distribuera Kubernetes Dashboard med hjälp av Helm-diagram eller genom att använda följande `kubectl`-kommando:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml

Kops

Kops, som står för Kubernetes Operations, är ett öppen källkodsprojekt som används för att snabbt och enkelt sätta upp Kubernetes-kluster för produktionsmiljöer. Kops kan användas för att distribuera Kubernetes-kluster främst på AWS och GCE.

Ett litet Kubernetes-kluster är relativt enkelt att skapa och underhålla, men när du skalar klustret ökar konfigurationerna, vilket gör det svårare att hantera. Kops hjälper till att lösa sådana problem. Det följer en konfigurationsdriven strategi som håller klustret uppdaterat och säkert.

Kops erbjuder också stöd för flera nätverks-backends. Genom att välja ett av dessa, baserat på ditt användningsfall, kan du enkelt sätta upp olika typer av kluster.

cAdvisor

cAdvisor är ett verktyg med öppen källkod för containerövervakning. Det används för att förstå prestanda och resursanvändning för containrar som körs i klustret.

Det fungerar på nodnivå och kan automatiskt upptäcka alla containrar som körs på en given nod och samlar in statistik för minne, filsystem, CPU och nätverk. Det har ett webbgränssnitt som visar realtidsdata för alla containrar i klustret.

För att komma igång med cAdvisor måste du köra Docker-imagen `google/cadvisor`, sedan kan du komma åt den via `http://localhost:8080` i din webbläsare.

Kubespray

Kubespray är ett verktyg som bygger på Ansible playbooks och Kubernetes. Det används för livscykelhantering av Kubernetes-kluster.

Med hjälp av Kubespray kan du snabbt distribuera ett kluster och anpassa parametrar för en klusterimplementering som distributionslägen, nätverks-plugins, DNS-konfiguration, komponentversioner och metoder för certifikatgenerering.

Genom att köra en enkel Ansible-playbook kan du få ditt kluster igång. Du kan enkelt skala eller uppgradera ditt Kubernetes-kluster.

K9s

K9s är ett terminalbaserat verktyg med öppen källkod som fungerar som ett instrumentpanelsverktyg och har nästan samma funktioner som ett Kubernetes webbgränssnitt. Det används för att navigera, observera och hantera applikationer som distribueras i ett Kubernetes-kluster.

Några av K9s funktioner:

  • Övervaka ditt kluster i realtid.
  • Anpassa visningen per resurs.
  • Zooma in på problem med klusterresurser.
  • Stöd för rollbaserad åtkomstkontroll.
  • Inbyggda riktmärken för att validera resursprestanda.

Kubetail

Kubetail är ett enkelt bash-skript som används för att samla in loggar från flera poddar i en ström.

Mycket praktiskt!

Det hjälper dig att felsöka med enkelhet.

Den senaste versionen av Kubetail har också funktioner för att markera och filtrera. Denna funktion låter dig färgkoda loggarna. Du kan installera Kubetail med ett enda kommando med hjälp av Homebrew. Du kan lägga till standardvärden i miljövariabler som Kubetail kan läsa, som `KUBETAIL_NAMESPACE`, `KUBETAIL_TAIL` och `KUBETAIL_SKIP_COLORS`.

Powerful Seal

Powerful Seal är ett kraftfullt verktyg för kaosteknik med öppen källkod skrivet i Python för Kubernetes-kluster.

Kaosteknik används för att kontrollera systemets förmåga att hantera problematiska situationer i produktionen. Den injicerar fel i Kubernetes-klustret för att identifiera problem så tidigt som möjligt.

Detta verktyg är inspirerat av Netflix Chaos Monkey och används för att förbättra Kubernetes motståndskraft. Med hjälp av Powerful Seal försöker ingenjörerna medvetet bryta saker i klustret för att se hur systemet reagerar.

Powerful Seal fungerar i tre lägen: Autonomt, Interaktivt och Etikettbaserat.

I autonomt läge utför det scenarier baserat på en policyfil. I interaktivt läge interagerar du manuellt med klusterkomponenterna. I etikettbaserat läge dödar du riktade objekt i klustret med hjälp av etiketter.

Popeye

Popeye är ett rengöringsverktyg som fungerar som ett desinfektionsmedel 🧼 för Kubernetes-kluster.

Det skannar hela klustret och rapporterar problem som rör konfigurationer och resurser. Det hjälper dig att tillämpa de bästa metoderna på ditt Kubernetes-kluster för att undvika vanliga problem.

Verktyget är tillgängligt för Windows, Linux och macOS. För närvarande fungerar det med noder, poddar, namnutrymmen och tjänster. Med Popeye kan du enkelt identifiera döda och oanvända resurser, felaktiga portmatchningar, RBAC-regler, måttanvändning och mer.

Sammanfattning

DevOps-verktyg spelar en kritisk roll för framgång, och jag hoppas att ovanstående information hjälper dig att hantera Kubernetes på ett bättre sätt.