Basisbeginselen van Helm
Wanneer u toepassingen implementeert, versiebeheer en bijwerkt, moet u ervoor zorgen dat u over de juiste versies van softwarebibliotheken en configuraties beschikt, zodat de toepassing naar verwachting functioneert.
Stel dat uw ontwikkelteam besluit om de bedrijfswebsite van de dierenwinkel te implementeren in Kubernetes. Als onderdeel van het proces maakt uw team implementatie-, een service- en een YAML-bestand voor toegangsbeheer. U codeert en onderhoudt de informatie in elk bestand voor elke doelomgeving handmatig. Het onderhouden van drie bestanden voor elke omgeving is echter lastig en neemt de complexiteit toe naarmate de toepassing groeit.
U kunt Helm gebruiken om het implementatieproces voor de toepassing te vereenvoudigen en in code vastgelegde implementatievariabelen en -instellingen te voorkomen.
Wat is Helm?
Helm is een pakketbeheerder voor Kubernetes waarbij alle resources en implementatiegegevens van uw toepassing worden gecombineerd tot één implementatiepakket.
U kunt Helm op dezelfde manier beschouwen als de Windows-pakketbeheerder in Windows, het Advanced Package Tool (apt) op Linux of Homebrew in macOS. U geeft de naam op van de toepassing die u wilt installeren, bijwerken of verwijderen en Helm doet de rest voor u.
Met Helm bent u niet beperkt tot het installeren van één app tegelijk. Met Helm kunt u YAML-scriptbestanden maken die door mensen kunnen worden gelezen om de implementatie van uw toepassing te beheren. Met deze sjabloonbestanden kunt u alle vereiste afhankelijkheden, configuratietoewijzingen en geheimen lezen die worden gebruikt voor het beheer van de implementatie van de toepassing.
Helm maakt gebruik van vier onderdelen voor het beheren van toepassingsimplementaties in een Kubernetes-cluster:
- De Helm-client
- Helm-grafieken
- Helm-releases
- Helm-opslagplaatsen
Wat is de Helm-client?
De Helm-client is een door de client geïnstalleerd binair bestand dat verantwoordelijk is voor het maken en verzenden van de manifestbestanden die vereist zijn voor het implementeren van een Kubernetes-toepassing. De client is verantwoordelijk voor de interactie tussen de gebruiker en het Kubernetes-cluster.
De Helm-client is beschikbaar voor alle belangrijke besturingssystemen en wordt geïnstalleerd op uw clientcomputer. In Azure is de Helm-client vooraf geïnstalleerd in cloud shell en ondersteunt alle functies voor beveiliging, identiteit en autorisatie van Kubernetes.
Notitie
In deze module wordt ervan uitgegaan dat Helm v3 wordt gebruikt. U kunt de opdracht helm version
uitvoeren om te controleren welke Helm-versie op het clientapparaat wordt uitgevoerd. Als u Helm v2 uitvoert, moet u er rekening mee houden dat sommige opdrachtparameters in deze module verschillend zijn.
Wat is een Helm-grafiek?
Een Helm-grafiek is een sjabloonimplementatiepakket dat een gerelateerde set Kubernetes-resources beschrijft. Het bevat alle informatie die nodig is voor het bouwen en implementeren van de manifestbestanden voor een toepassing die wordt uitgevoerd op een Kubernetes-cluster.
Een Helm-grafiek bestaat uit verschillende bestanden en mappen om de grafiek te beschrijven. Sommige onderdelen zijn vereist en sommige zijn optioneel. Wat u wilt toevoegen, is gebaseerd op de app-configuratievereisten.
In de volgende lijst worden de bestands- en maponderdelen van een Helm-grafiek met de vereiste items vetgedrukt beschreven:
Bestand/map | Beschrijving |
---|---|
Chart.yaml |
Een YAML-bestand met de informatie over de grafiek. |
values.yaml |
De standaard configuratiewaarden voor de grafiek. |
templates/ |
Een map die de implementatiesjablonen voor de grafiek bevat. |
LICENSE |
Een bestand met tekst zonder opmaak dat de licentie voor de grafiek bevat. |
README.md |
Een markdown-bestand dat instructies bevat over het gebruik van de grafiek. |
values.schema.json ** |
Een schemabestand voor het toepassen van een structuur op het bestand values.yaml. |
charts/ |
Een map die alle subgrafieken bevat naar de hoofdgrafiek. |
crds/ |
Aangepaste resourcedefinities. |
templates/Notes.txt |
Een tekstbestand met notities over sjabloongebruik. |
Wat is een Helm-release?
Een Helm-release is de toepassing of groep toepassingen die zijn geïmplementeerd met behulp van een grafiek. Steeds wanneer u een grafiek installeert, wordt er een nieuw exemplaar van een toepassing op het cluster gemaakt. Elk exemplaar heeft een releasenaam waarmee u kunt communiceren met het specifieke toepassingsexemplaar.
Stel dat u twee Nginx-exemplaren hebt geïnstalleerd op uw Kubernetes-cluster met behulp van een grafiek. Later besluit u het eerste Nginx-exemplaar bij te werken, maar niet het tweede. Aangezien de twee releases verschillend zijn, kunt u upgraden naar de eerste release zonder dat dit van invloed is op de tweede.
Wat is een Helm-opslagplaats?
Een Helm-opslagplaats is een toegewezen HTTP-server waarin informatie in Helm-grafieken wordt opgeslagen. De server fungeert als host voor een bestand waarin grafieken worden beschreven en waar u elke grafiek kunt downloaden.
Het Helm-project fungeert als host voor veel openbare grafieken en er zijn veel opslagplaatsen die u kunt gebruiken om grafieken opnieuw te gebruiken. Helm-opslagplaatsen vereenvoudigen de detectie en het hergebruik van Helm-pakketten.
Voordelen van het gebruik van Helm
Helm biedt een aantal voordelen waarmee de implementatie van toepassingen wordt vereenvoudigd en de productiviteit wordt verbeterd in de ontwikkelings-en implementatielevenscyclus van cloudtoepassingen. Met Helm beschik je over toepassingsreleases met de volgende eigenschappen:
- Herhaalbare
- Betrouwbare
- Beheerbaar in meerdere en complexe omgevingen, en
- Herbruikbaar door verschillende ontwikkelteams.
Een Helm-grafiek standaardiseert de implementatie van een toepassing met behulp van verpakte sjabloonlogica die wordt geparameteriseerd door invoerwaarden in te stellen. Dit sjabloongestuurde pakketontwerp biedt een omgevingsagnostische benadering voor het implementeren en delen van cloudeigen toepassingen.