Het implementeren van applicaties in Kubernetes kan complex zijn, vooral voor nieuwkomers. Voer Argo CD in, een op GitOps gebaseerde, declaratieve tool die is ontworpen om Kubernetes-applicatie-implementaties te automatiseren. In deze workshop leer je hoe je Argo CD instelt en gebruikt om applicaties naadloos te implementeren, met een stapsgewijze aanpak die is ontworpen voor complete beginners.
Wat je zult leren
- Argo CD installeren en configureren.
- Applicaties implementeren met gebruik van GitOps-principes.
- Implementaties monitoren en problemen oplossen.
- Terugdraaien en beheren van applicatieversies.
- Argo CD beveiligen voor productiegebruik.
Waarom Argo CD?
Argo CD vereenvoudigt applicatiebeheer in Kubernetes door continu je cluster te synchroniseren met manifests gedefinieerd in Git-repositories. Voordelen zijn onder andere:
- Declaratief beheer: Definieer de gewenste clusterstatus in Git.
- Continue levering: Automatiseer implementaties met real-time synchronisatie.
- Versiebeheer: Ga eenvoudig terug naar vorige versies.
Vereisten
Voordat je begint, zorg ervoor dat je het volgende hebt:
- Een Kubernetes-cluster (gebruik Minikube, Kind, of een beheerde service zoals GKE, EKS, AKS).
kubectl
geïnstalleerd en geconfigureerd om verbinding te maken met je cluster.- Een GitHub- of GitLab-account om je Kubernetes-manifesten te hosten.
- Basiskennis van YAML-syntaxis (wordt behandeld in deze workshop als je nieuw bent).
Stapsgewijze Gids
1. Opzetten van een Kubernetes-cluster
Stap 1: Minikube Installeren
Als je geen cluster hebt, gebruik Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
Stap 2: Minikube Starten
Voer het commando minikube start
uit nadat je Minikube op je systeem hebt geïnstalleerd:
minikube start
Stap 3: Cluster Verifiëren
Controleer of het cluster actief is:
kubectl cluster-info
kubectl get nodes
2. Argo CD Installeren
Stap 1: Namespace Aanmaken
Argo CD draait in zijn eigen namespace voor isolatie:
kubectl create namespace argocd
Stap 2: Argo CD Installeren
Gebruik de officiële manifesten om Argo CD te installeren:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Stap 3: Installatie Verifiëren
Controleer de Argo CD-pods:
kubectl get pods -n argocd
3. Toegang tot de Argo CD-gebruikersinterface
Stap 1: Argo CD Exposen
Exposeer de argocd-server
naar je lokale machine.
kubectl port-forward svc/argocd-server -n argocd 8080:443
Stap 2: Adminreferenties ophalen
Haal het standaard adminwachtwoord op:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Stap 3: Inloggen op UI
- Open https://localhost:8080 in je browser.
- Log in met:
- Gebruikersnaam: admin
- Wachtwoord: Opgeslagen in de vorige stap.
4. Verbinding maken Argo CD met je Git Repository
Stap 1: Voorbereiden van een Git Repository
- Maak een Git repository aan (bijv. op GitHub).
- Voeg je Kubernetes-manifesten toe aan de repository. Gebruik dit voorbeeld
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
Stap 2: Repository toevoegen aan Argo CD
Vanuit de UI:
- Navigeer naar Instellingen > Repositories.
- Voeg de URL van je Git repository toe en de authenticatiedetails (SSH of HTTPS).
Of, gebruik de CLI:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. Uitrollen van je Eerste Applicatie
Stap 1: Maak een Applicatie aan
In de Argo CD UI:
- Klik op Nieuwe App.
-
- Applicatienaam: nginx-app
- Project: standaard
- Repository-URL: Uw Git-repo-URL
- Pad: Pad naar
deployment.yaml
- Cluster-URL:
https://kubernetes.default.svc
- Namespace: standaard
Stap 2: Synchroniseer de Applicatie
Na het maken van de app:
- Klik op Synchroniseren in de Argo CD UI.
- Bekijk hoe de app wordt geïmplementeerd op uw Kubernetes-cluster.
6. Implementaties automatiseren
Stap 1: Automatische Synchronisatie inschakelen
Schakel continue synchronisatie in:
argocd app set nginx-app --sync-policy automated
Stap 2: Wijzigingen testen
- Wijzig het
deployment.yaml
in Git. - Push wijzigingen naar het repository.
- Argo CD detecteert de wijzigingen en synchroniseert ze automatisch naar het cluster.
7. Monitoring en Probleemoplossing
Stap 1: Monitor de Gezondheid van de Applicatie
In de UI, controleer:
- Gezondheid: Geeft aan of de toepassing zoals verwacht werkt.
- Synchronisatiestatus: Zorgt ervoor dat de clusterstatus overeenkomt met Git.
Stap 2: Bekijk Logs
Als er iets misgaat:
kubectl logs -n argocd <POD_NAME>
Stap 3: Maak Wijzigingen Ongedaan
Maak wijzigingen ongedaan naar een eerdere staat:
argocd app rollback nginx-app <REVISION>
8. Argo CD Beveiligen
Stap 1: Wijzig Standaard Beheerderswachtwoord
Wijzig het standaard beheerderswachtwoord met behulp van het commando argocd account update-password
:
argocd account update-password
Stap 2: Integreer SSO
Voor productieomgevingen, integreer met Single Sign-On (SSO) oplossingen zoals GitHub of LDAP.
GitOps Beste Praktijken
- Branchestrategieën: Gebruik aparte branches voor ontwikkeling, staging en productie.
- Code Reviews: Voer peer reviews uit voor manifest wijzigingen.
- Auditlogs: Controleer regelmatig Argo CD logs voor naleving en debugging.
Conclusie
Argo CD biedt een gebruiksvriendelijke maar krachtige manier om Kubernetes-implementaties te beheren met behulp van GitOps principes. Deze workshop voorziet je van de vaardigheden om toepassingen efficiënt te implementeren, monitoren en beheren. Door je aan deze praktijken te houden, ben je goed op weg om Kubernetes-continue levering onder de knie te krijgen.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd