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:
-
SSH-sleutels op uw machine. Als u geen SSH-sleutels heeft op Linux/MacOS/BSD, kunt u er een maken door onze handleiding te volgen SSH-overzicht – SSH-servers, clients en sleutels.
-
U hebt ook een draaiend Kubernetes-cluster nodig. Daarnaast moet u kubectl op uw machine hebben draaien. Als u geen Kubernetes-cluster hebt, kunt u Een Kubernetes-cluster maken met Kubeadm op Ubuntu 18.04.
-
U moet een basisbegrip hebben van Kubernetes-concepten. Als u zich verder wilt vertrouwen maken met Kubernetes, kunt u Kennismaken met de basisprincipes van de Kubernetes-tool.
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:
|
1 |
kubectl 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:
|
1 |
kubectl create namespace argocd |
Installeer daarna de Argo CD-scripts in de hierboven nieuw gemaakte namespace door het onderstaande commando uit te voeren:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Voer het onderstaande commando uit om de status van de Kubernetes-pods te controleren:
|
1 |
watch kubectl get pods -n argocd |
U krijgt een resultaat zoals hieronder:

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:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
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:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
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:
|
1 |
brew install argocd |
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:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Nu u Argo CD hebt geïnstalleerd, kunt u inloggen met de opdracht argocd login hieronder:
|
1 |
argocd login localhost:8080 |
U moet inloggen om de applicatie te implementeren wanneer u de opdrachtregel gebruikt:

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:
|
1 |
kubectl config get-contexts -o name |
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:
|
1 |
argocd cluster add target-k8s |
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:
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
U kunt de status van de nieuw gemaakte app controleren door het uitvoeren van argocd app get:
|
1 |
argocd app get helm-guestbook |
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:
|
1 |
argocd app sync helm-guestbook |

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:

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:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Open ten slotte de URL localhost:9090 in je webbrowser om je applicatie te zien draaien:

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:
- Kubernetes DNS-service: een gids voor beginners
- WordPress instellen met MySQL op Kubernetes met Helm
- Jenkins installeren op Kubernetes
- CloudSigma PaaS verkennen: toegang krijgen tot een Kubernetes-applicatie via een openbaar IP-adres
Veel computerplezier!
Reacties
Nog geen reacties. Wees de eerste.