Grunderna i Helm
När du distribuerar, versionshantering och uppdaterar program måste du se till att du har rätt versioner av programvarubibliotek och konfigurationer så att programmet fungerar som förväntat.
Anta att utvecklingsteamet bestämmer sig för att distribuera webbplatsen för djurbutiksföretaget till Kubernetes. Som en del av processen skapar ditt team distributions-, tjänst- och inkommande YAML-baserade filer. Du hårdkodar och underhåller informationen i varje fil för varje målmiljö för hand. Att underhålla tre filer för varje miljö är dock besvärligt och ökar komplexiteten när programmet växer.
Du kan använda Helm för att förenkla programdistributionsprocessen och undvika hårdkodade distributionsvariabler och inställningar.
Vad är Helm?
Helm är en pakethanterare för Kubernetes som kombinerar alla programresurser och distributionsinformation till ett enda distributionspaket.
Du kan tänka på Helm på samma sätt som Windows Package Manager på Windows, Advanced Package Tool (apt) i Linux eller Homebrew på macOS. Du anger namnet på det program som du vill installera, uppdatera eller ta bort, och Helm tar hand om processen.
Med Helm är du inte begränsad till att installera en enskild app i taget. Med Helm kan du skapa mallade, läsbara YAML-skriptfiler för att hantera programmets distribution. Med de här mallfilerna kan du ange alla nödvändiga beroenden, konfigurationsmappning och hemligheter som används för att hantera distributionen av ett program.
Helm använder fyra komponenter för att hantera programdistributioner i ett Kubernetes-kluster:
- Helm-klienten
- Helm-diagram
- Helm-versioner
- Helm-lagringsplatser
Vad är Helm-klienten?
Helm-klienten är en binärfil installerad av klienten som ansvarar för att skapa och skicka de manifestfiler som krävs för att distribuera en Kubernetes-applikation. Klienten ansvarar för interaktionen mellan användaren och Kubernetes-klustret.
Helm-klienten är tillgänglig för alla större operativsystem och är installerad på klientdatorn. I Azure är Helm-klienten förinstallerad i Cloud Shell och har stöd för alla säkerhets-, identitets- och auktoriseringsfunktioner i Kubernetes.
Not
Den här modulen förutsätter användning av Helm v3. Du kan köra kommandot helm version
för att kontrollera helm-versionen som körs på klientenheten. Om du kör Helm v2 bör du tänka på att vissa kommandoparametrar i den här modulen skiljer sig.
Vad är ett Helm-diagram?
Ett Helm-diagram ett mallat distributionspaket som beskriver en relaterad uppsättning Kubernetes-resurser. Den innehåller all information som krävs för att skapa och distribuera manifestfilerna för ett program som ska köras på ett Kubernetes-kluster.
Ett Helm-diagram består av flera filer och mappar för att beskriva diagrammet. Vissa av komponenterna krävs och vissa är valfria. Det du väljer att ta med baseras på appkonfigurationskraven.
I följande lista beskrivs fil- och mappkomponenterna i ett Helm-diagram med de obligatoriska objekten i fetstil:
Fil/mapp | Beskrivning |
---|---|
Chart.yaml |
En YAML-fil som innehåller information om diagrammet. |
values.yaml |
Standardkonfigurationsvärdena för diagrammet. |
templates/ |
En mapp som innehåller distributionsmallarna för diagrammet. |
LICENSE |
En oformaterad textfil som innehåller licensen för diagrammet. |
README.md |
En markdown-fil som innehåller instruktioner om hur du använder diagrammet. |
values.schema.json ** |
En schemafil för att tillämpa struktur på filen values.yaml. |
charts/ |
En mapp som innehåller alla underscheman till huvuddiagrammet. |
crds/ |
Anpassade resursdefinitioner. |
templates/Notes.txt |
En textfil som innehåller anteckningar om användning av mallar. |
Vad är en Helm-utgåva?
En Helm-version är programmet eller gruppen med program som distribueras med hjälp av ett diagram. Varje gång du installerar ett diagram skapas en ny instans av ett program i klustret. Varje instans har ett versionsnamn som gör att du kan interagera med den specifika programinstansen.
Anta till exempel att du har installerat två Nginx-instanser på ditt Kubernetes-kluster med hjälp av ett diagram. Senare bestämmer du dig för att uppgradera den första Nginx-instansen, men inte den andra. Eftersom de två versionerna är olika kan du uppgradera den första versionen utan att påverka den andra.
Vad är en Helm-lagringsplats?
Ett Helm-förråd är en dedikerad HTTP-server som lagrar information om Helm-diagram. Servern är värd för en fil som beskriver diagram och var varje diagram ska laddas ned.
Helm-projektet är värd för många offentliga diagram och det finns många lagringsplatser som du kan återanvända diagram från. Helm-lagringsplatser förenklar identifieringen och återanvändningen av Helm-paket.
Fördelar med att använda Helm
Helm introducerar ett antal fördelar som förenklar programdistributionen och förbättrar produktiviteten i utvecklings- och distributionslivscykeln för molnbaserade program. Med Helm har du programversioner som är:
- Repeterbar
- Pålitlig
- Hanterbar i flera och komplexa miljöer, och
- Kan återanvändas i olika utvecklingsteam.
Ett Helm-diagram standardiserar distributionen av ett program med hjälp av paketerad malllogik som parametriseras av angivna indatavärden. Den här malldrivna paketdesignen ger en miljöagnostisk metod för att distribuera och dela molnbaserade program.