applicaties inzetten op Kubernetes met Helm
Dit artikel is een vervolg op mijn artikel“Wat is Helm en hoe installeer je het op een Ubuntu 20.04 server?“. Als je nieuw bent met Helm, raad ik je aan eerst het genoemde artikel door te nemen. In dit artikel zullen we Apache vrijgeven van de bestaande grafiek. We zullen een voorbeeldgrafiek maken en die vrijgeven, upgraden, terugdraaien, verwijderen en herstellen. Laten we de commando’s in het kort bekijken voor we ze later in het artikel gebruiken.
- helm zoeken: Zoek naar Helm grafieken
- helmrepo: Voer bewerkingen uit als toevoegen, oplijsten, verwijderen, bijwerken, en indexeren op Repository
- helmverwijderen: Verwijder de kaart die op zijn beurt alle Kubernetes objecten ervan verwijdert.
- helmstatus: Geef de status van de release weer.
- helmcreate: Maak een helm grafiek aan.
- helminstall: Installeer een grafiek die op zijn beurt zijn Kubernetes objecten aanmaakt
- helmupgrade: Upgrade een release met wijzigingen die we er in aangebracht hebben.
- roergeschiedenis: Haal de geschiedenis van de release op.
- helmrollback: Draai veranderingen terug naar de vorige versie.
Alvorens verder te gaan wordt aangenomen dat je bekend bent met de basisprincipes van Helm. Er wordt ook verondersteld dat je een Kubernetes cluster hebt en dat de Helm cliënt daar al in geïnstalleerd is.
Vereisten
- Kubernetes Cluster met minstens 1 worker node.
Als je wilt leren hoe je een Kubernetes Cluster maakt, klik danhier. Deze gids helpt je een Kubernetes cluster te maken met 1 Master en 2 Nodes op AWS Ubuntu 18.04 EC2 Instances. - Helm geïnstalleerd op je master node(Zoek naar mijn artikel met de naam “Wat is Helm en hoe installeer je het op Ubuntu 20.04 server” om de basis van Helm te begrijpen en het te installeren).
Wat zullen we doen?
- Geef een voorbeeldgrafiek vrij uit de repo.
- Maak een grafiek en geef een voorbeeld vrij.
- Upgrade de release.
- Herstel de release nadat hij verwijderd is
Geef een voorbeeldkaart uit de repo vrij
Laten we eerst controleren of de “helm” beschikbaar is op de server of niet.
helm versie
Laten we als voorbeeld proberen een Apache kaart uit de hub te installeren. Voer het volgende commando uit om Apache op de hub te zoeken.
roer zoek hub apache
Je krijgt een reeks resultaten, kopieer de URL van een van de zoekopdrachten voor Apache. In dit geval kopieerde ik de eerste URL.
Klik op de URL in de web browser en je ziet een pagina als volgt.
Op deze pagina krijg je commando’s om een repo aan je lokale systeem toe te voegen en de kaart daaruit te installeren.
Voer de commando’s uit op je lokale systeem die de repository voor de Apache kaart zullen toevoegen.
roer repo toevoegen bitnami https://charts.bitnami.com/bitnami
roer repo lijst
Zodra je de repository op je systeem hebt ben je helemaal klaar om de kaart te installeren en een release voor Apache te maken met Helm.
helm install my-release bitnami/apache
Bij succesvolle uitvoering van de commando’s zie je de uitvoer als hierboven.
Zodra de kaart is vrijgegeven kun je objecten zien die op het Kubernetes cluster zijn aangemaakt.
kubectl get nodes
kubectl get pods
Je kunt nu het IP van de pod krijgen en met het curl commando proberen op de Apache pagina te komen.
kubectl get pods -o wide
kubectl get svc
curl 10.244.1.2:8080
Als je de release wilt verwijderen kun je dat eenvoudig doen met het volgende commando
helm verwijder mijn-release
Je kunt een lijst van releases op het cluster maken en zien of de release met succes verwijderd is of niet.
helm ls
roer status mijn-release
Maak een grafiek en ontplooi een voorbeeldapplicatie
In het bovenstaande scenario installeerden we een kaart die gemakkelijk beschikbaar en geconfigureerd was. We kunnen nu onze eigen kaart maken en onze toepassing vrijgeven. Het maken van een kaart is heel eenvoudig met helm. Als je het volgende commando uitvoert krijg je een grafiek met een voorbeeld toepassing van Nginx erin.
helm create my-first-chart
Verken de mappenstructuur van de grafiek die we met het bovenstaande commando maakten.
cd mijn-eerste-grafiek/
ls -l
ls -l grafieken/
ls -l sjablonen/
ls -l sjablonen/testen/
Controleer de inhoud van het bestand Chart.yaml.
ls -lt
cat grafieken.yaml
Controleer de inhoud van values.yaml
ls -lt
cat waarden.yaml
Laten we nu de voorbeeldapplicatie inzetten met de lokale grafiek.
pwd
cd .
ls -l | grep mijn-eerste-grafiek
kubectl get pods
helm install my-first-release my-first-chart/
Zodra de kaart met succes is vrijgegeven zie je dat er een pod in het cluster is aangemaakt.
kubectl get pods
kubectl get svc
Je kunt nu via de service toegang krijgen tot de Nginx pod.
curl 10.104.229.187
Je kunt informatie vinden over de release die we gemaakt hebben met het volgende commando.
roer ls
helm status my-first-release
Upgrade de release
In het bovenstaande scenario maakten we een grafiek met een voorbeeld Nginx toepassing. De replicatelling in het bovenstaande scenario was 1. Als je de replicatelling wilt verhogen kun je dat gemakkelijk doen door veranderingen aan te brengen in values.yaml bestand.
cat my-first-chart/values.yaml | grep replica
vim my-first-chart/values.yaml
cat my-first-chart/values.yaml | grep replica
roer ls
Nu kun je gemakkelijk je veranderingen uitrollen en je release upgraden.
helm upgrade my-first-release my-first-chart/
Je ziet zelfs dat de revisie van de release bijgewerkt is tot 2.
roer ls
Deze keer zie je twee pods in het cluster draaien, want we hadden de replicatelling op 2 gezet.
kubectl get pods
roerganger ls
Als we de geschiedenis van de release bekijken zien we dat de release twee revisies heeft. Revisie één had 1 pod en later werkten we de replicatelling bij tot 2 waardoor revisie 2 van de release ontstond.
roer geschiedenis mijn-eerste-release
Als we niet willen dat de wijzigingen in revisie 2 worden vrijgegeven en terug willen naar revisie 1, kunnen we dat eenvoudig doen met het volgende rollback commando.
roer rollback mijn-eerste-release 1
roer ls
En dit zal revisie 3 voor de release aanmaken.
roer geschiedenis mijn-eerste-release
Je ziet nu dat er nog maar één pod draait in het cluster.
kubectl get pods
Voor het geval je de vrijgegeven voorbeeld Nginx toepassing uit de kaart wilt verwijderen, kun je dat doen door de release te verwijderen.
helm ls
roer verwijder mijn-eerste-release
roer ls
Herstel de release nadat hij verwijderd is
In het bovenstaande scenario hebben we de release verwijderd. Maar standaard bewaart de release zijn release geschiedenis niet als hij verwijderd wordt. Als je in zo’n scenario wilt terugzetten, lukt dat niet tenzij je de optie –keep-history specificeert bij het commando delete release.
helm ls
helm install my-second-release my-first-chart/
helm ls
Als je tijdens het verwijderen van de release de optie –keep-history opgeeft, maakt de helm een nieuwe release versie aan. Op deze manier kun je terugkeren naar de vorige werkende versie, zelfs nadat je de release of toepassing verwijderd hebt.
helm verwijder mijn-second-release –keep-history
roer ls
roer ls -a
roer geschiedenis mijn-second-release
roer rollback mijn-second-release 1
roer ls
roer geschiedenis mijn-second-release
Conclusie
In dit artikel hebben we een voorbeeld toepassing ingezet van de Helm kaart die op het Internet beschikbaar is. We zagen zelfs de stappen om een Helm kaart op ons systeem te maken en vrij te geven. Hiernaast zagen we hoe je Helm charts kunt verwijderen, terug kunt rollen naar vorige versies en de release geschiedenis kunt bewaren, zelfs na het verwijderen van de chat.