Dieses Projekt ist Teil der Vorlesung "System Engineering & Management" und beinhaltet die Entwicklung und Bereitstellung einer containerisierten Webanwendung auf Azure Kubernetes Service (AKS). Die Infrastruktur wird mit Terraform verwaltet.
projektordner/
├── terraform/ # Terraform-Konfigurationen
│ ├── main.tf # Hauptdatei für Ressourcen
│ ├── variables.tf # Definierte Variablen (optional)
│ ├── outputs.tf # Outputs (optional)
│ ├── terraform.tfstate # Terraform-Zustand (nicht in Git einchecken)
│ └── .terraform/ # Terraform-Caches (nicht in Git einchecken)
├── webapp/ # Webanwendung (Node.js, Docker)
│ ├── Dockerfile # Docker-Konfigurationsdatei
│ ├── package.json # Abhängigkeiten der Web-App
│ ├── server.js # Beispielserver
├── .gitignore # Dateien, die nicht ins Git-Repo gehören
├── README.md # Projektbeschreibung
-
Azure Resource Group:
- Organisiert alle Azure-Ressourcen.
- Name:
webapp-rg.
-
Azure Container Registry (ACR):
- Speichert Docker-Images für die Anwendung.
- Name:
webappacr.
-
Azure Kubernetes Service (AKS):
- Orchestriert und skaliert containerisierte Anwendungen.
- Cluster-Name:
webapp-aks.
- Azure-Konto: Studenten- oder Standardkonto für Azure-Dienste.
- Terraform: Installation
- Docker: Installation
- Azure CLI: Installation
- Node.js (für die Web-App, falls nötig): Installation
-
Terraform initialisieren:
cd terraform terraform init -
Plan erstellen:
terraform plan
-
Ressourcen bereitstellen:
terraform apply
-
Kubernetes konfigurieren:
- Anmeldeinformationen abrufen:
az aks get-credentials --resource-group webapp-rg --name webapp-aks
- Testen:
kubectl get nodes
- Anmeldeinformationen abrufen:
-
Docker-Image erstellen und pushen: Sobald der Entwickler das Docker-Image bereitstellt:
docker build -t webappacr.azurecr.io/webapp:latest . docker push webappacr.azurecr.io/webapp:latest -
Web-App in AKS bereitstellen: Kubernetes-Manifestdateien verwenden (z. B.
deployment.yaml).
-
Docker bei ACR anmelden:
az acr login --name webappacr
-
Kubernetes-Cluster testen:
kubectl get nodes
-
Container-Logs anzeigen:
kubectl logs <pod-name>
- Docker-Image für Webanwendung erstellen.
- Kubernetes-Deployment für die Web-App bereitstellen.
- CI/CD-Pipeline einrichten (z. B. mit GitHub Actions).
Hinweis: Bitte stelle sicher, dass sensible Daten wie Zugangsdaten nicht in das Git-Repository eincheckt werden. Nutze .gitignore, um Dateien wie terraform.tfstate auszuschließen.