Terug naar blog

Applicaties implementeren op Kubernetes met behulp van Argo CD en GitOps

Applicaties implementeren op Kubernetes met behulp van Argo CD en GitOps

Introductie

Kubernetes is een standaard geworden voor het implementeren van grote applicaties. Het helpt ontwikkelaars aanzienlijke voordelen te behalen en biedt functies die niet beschikbaar zijn in traditionele serverhosting. Kubernetes maakt horizontaal schalen mogelijk zonder het gedoe van infrastructuur. Bovendien verlaagt het de kosten voor het aanschaffen en onderhouden van de infrastructuur naarmate de applicatie groeit.

Het beheren van applicaties op Kubernetes kan echter ook complex zijn en vereist geavanceerde vaardigheden. Het implementeren van applicaties met behulp van Kubernetes en Continuous Integration en Continuous Deployment proces (CI/CD) helpt dit complexe proces te overwinnen door abstractie te bieden. GitOps is een van de tools die kunnen helpen bij het bereiken van abstractie.

In deze handleiding zullen we demonstreren hoe u Argo CD kunt gebruiken om applicaties continu te integreren en te implementeren op Kubernetes. Telkens wanneer er een wijziging naar de repository wordt gepusht, wordt deze geïmplementeerd op het doelcluster. Argo CD biedt ook versiebeheer, configuraties en applicatie-omgevingen door te integreren met de gehele levenscyclus van softwareontwikkeling. Als u pakketbeheerders voor Kubernetes heeft zoals Helm, of als uw repository wordt gehost op BitBucket of GitLab, kan Argo CD ook naadloos integreren met al deze platforms.

Vereisten

Om deze handleiding te voltooien, moet u beschikken over:

Stap 1 – Argo CD installeren

Voordat we Argo CD kunnen installeren, moeten we een Kubernetes-omgeving hebben draaien met kubectl. U kunt dit testen door het onderstaande commando uit te voeren:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Nodes

U zou ten minste één Kubernetes-node moeten zien draaien in de Ready status. Als er geen node beschikbaar is, moet u uw Kubernetes-installatie controleren. Vervolgens maken we een aparte namespace aan voor onze Kubernetes-installatie. Laten we deze argocd noemen. We houden de aan Argo CD gerelateerde service in deze namespace:

Installeer daarna de Argo CD-scripts in de hierboven nieuw gemaakte namespace door het onderstaande commando uit te voeren:

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Voer het onderstaande commando uit om de status van de Kubernetes-pods te controleren:

U krijgt een resultaat zoals hieronder:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

Hier hebt u de installatie van Argo CD succesvol afgerond. Om de watch interface te verlaten, kunt u drukken op Ctrl + C. Toegang te krijgen tot de services in dit Kubernetes-cluster, moeten we de poorten doorsturen. We laten u in de volgende stap zien hoe u dat doet.

Stap 2 – Poorten doorsturen om toegang te krijgen tot Argo CD

Kubernetes kan uw applicatie implementeren op elke gewenste poort. Daarom is het noodzakelijk om de poorten van de Kubernetes-applicatie door te sturen om ze vanaf de lokale machine te openen. Argo CD stelt een service beschikbaar genaamd argocd-server die poort 443 gebruikt. Poort 443 is de standaardpoort voor de HTTPS- en HTTP-services. U kunt de Kubernetes-poorten doorsturen naar een poort naar keuze. In ons onderstaande voorbeeld hebben we de poort doorgestuurd naar 8080. Om poorten door te sturen, voert u het onderstaande commando uit in de terminal:

Once you forward the port, it will be blocked so that the other services cannot access it. To have uninterrupted access, it is always recommended to run the above mentioned command in a new terminal. Once you finish, you can press Ctrl+C om het poortdoorstuurproces te beëindigen.

After you have forwarded the port, you can navigate to the Argo CD by navigating to localhost:8080. U wordt gevraagd om de inloggegevens die u in de volgende stap via de opdrachtregel kunt verkrijgen.

Step 3 – Beheer Argo CD vanaf de opdrachtregel

We moeten de Argo CD-opdrachtregel installeren om de Argo CD-installatie te beheren. De aanbevolen manier om Argo CD te installeren is door gebruik te maken van een pakketbeheerder zoals Homebrew. Homebrew is een populaire pakketbeheerder voor installatie op macOS en Linux. U kunt Homebrew installeren met de onderstaande opdracht:

U moet brew geïnstalleerd hebben op uw machine. Er kan een wachtwoordprompt verschijnen om in te loggen. U kunt dit uitvoeren door de onderstaande opdracht uit te voeren:

U krijgt de argocd-opdracht na de bovenstaande installatie. We moeten het admin-wachtwoord ophalen met behulp van de kubectl -opdracht. Deze is automatisch gegenereerd tijdens de installatie. Hieronder vindt u de opdracht om deze te verkrijgen:

Nu u Argo CD hebt geïnstalleerd, kunt u inloggen met de opdracht argocd login hieronder:

U moet inloggen om de applicatie te implementeren wanneer u de opdrachtregel gebruikt:

Applications

U kunt een beveiligingswaarschuwing ontvangen. Druk in dat geval op y om verder te gaan. Veel gebruikers willen het wachtwoord mogelijk wijzigen nadat ze zijn ingelogd. Voer in dat geval de opdracht argocd account update-password uit om het wachtwoord te wijzigen. We hebben nu een volledig functionele Argo CD-configuratie.

Ten slote zullen we een applicatie implementeren op het Kubernetes-cluster met behulp van de geïnstalleerde Argo CD.

Step 4 – Meerdere clusters gebruiken

Voordat u doorgaat met het instellen van uw applicatie, is het noodzakelijk om de doelmachine te kennen waarop u deze wilt implementeren. In veel scenario's kunnen Argo CD en de geïmplementeerde applicatie op hetzelfde cluster draaien. Dit is het standaardgedrag van Argo CD, maar dit is geen beperking. Als u de applicatie op andere doelmachines wilt implementeren, voert u eerst de kubectl config uit op uw machine:

Stel dat u twee clusters krijgt: test-deploy-cluster en test-target-cluster. Als nu de test-deploy-cluster de locatie is waar uw Argo CD zich bevindt en u wilt implementeren op test-target-cluster, voer dan de onderstaande opdracht uit:

De bovenstaande opdracht voegt de details van het extra cluster toe aan Argo CD. Hiermee kunnen ook services worden geïmplementeerd op het Argo CD-doelcluster.

Step 5 – Een voorbeeldapplicatie implementeren

Het is eindelijk tijd om applicaties te implementeren op het Kubernetes-cluster. We zullen de voorbeeldapplicaties gebruiken die door Argo CD worden geleverd. We zullen ook gebruikmaken van de helm-guestbook die is gebouwd met behulp van Helm charts.

Om de applicatie te installeren, gebruiken we de argo app create -opdracht. We specificeren de Git-repository, helm-guestbook , en geven uw standaardbestemming en namespace door:

U kunt de status van de nieuw gemaakte app controleren door het uitvoeren van argocd app get:

Wees niet verrast als je OutOfSync-status ziet. Tot nu toe hebben we de Helm-chart gedownload en er een toegangspunt voor gemaakt voor Argo CD. Op het gebied van Kubernetes is er echter geen resource aan toegewezen. Om deze applicatie te synchroniseren, voer je het onderstaande commando uit:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

Wanneer je met GitOps werkt, is het altijd nodig om de applicatie te synchroniseren met de upstream. Telkens wanneer er een wijziging optreedt in de repository, deploit Argo CD de applicatie.

We hebben de applicatie geïmplementeerd met behulp van de Argo CD-commandline. Je kunt hetzelfde resultaat bereiken met de Argo CD-webinterface. De webinterface is erg handig als je de status en de werking van de applicatie wilt controleren. Om de webinterface te openen, open je localhost:8080:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

Om de installatie te verifiëren, openen we de applicatie in de browser. Onze helm-guestbook draait op poort 80. Als je een andere applicatie hebt die poort gebruikt,80, kun je de poort forwarden zodat andere applicaties niet worden onderbroken:

Open ten slotte de URL localhost:9090 in je webbrowser om je applicatie te zien draaien:

 Guestbook UI

Als een ontwikkelaar nu code pusht naar de externe GitHub-repository, zal ArgoCD dit opvangen en weergeven. Je ArgoCD-deployments worden dienovereenkomstig bijgewerkt, wat zorgt voor continue beschikbaarheid.

Conclusie

In deze handleiding hebben we laten zien hoe je applicaties installeert en deploit op Kubernetes met behulp van Argo CD. Het is belangrijk om ervoor te zorgen dat je deployments op Kubernetes onderhoudbaar zijn. GitOps kan je hierbij enorm helpen.

Kubernetes is nu de standaard voor deployments in de cloud. Cloudsigma heeft een aantal geweldige handleidingen over Kubernetes die je hierna kunt bekijken:

Veel computerplezier!

author

Preslav Dobrev

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.