Mithilfe einer Script Sammlung soll das erstellen und erweitern (Monitoring, Logging, Demo Services) von Kubernetes Clustern auf den Cloudprovidern AWS und Azure vereinfacht werden.
Das erstellen und konfigurieren von Cloud Ressourcen via Source Code wird auch Infrastructure-as-Code (IAC) genannt. Dies ermöglicht es, Infrastruktur ohne manuelle Klicks in einem Web-UI oder manuelles ausführen von Codes auf der Commandline zu provisionieren. Durch IAC können Infrastrukturen schnell, identisch und automatisiert erstellt werden.
Das erstellen der Cluster wird mit dem IAC Tool Terraform durchgeführt. Das erweitern mit den Tools Helm und ArgoCD
Cloud, Hyperscaler, Kubernetes, Azure, Azure AKS, AWS, AWS EKS, IAC, Terraform,Helm, ArgoCD
Das Ziel der Arbeit ist das erstellen einer Script Sammlung für das erstellen und erweitern der Cluster. Unterschiede zwischen den Cloudprovidern sollen identifiziert, abstrahiert und dokumentiert werden.
Die Script Sammlung soll mit Terraform auf den Public Cloud Providern Azure und AWS Kubernetes Ressourcen erstellen und anschliessend mit Helm und ArgoCD erweitern. Zum erweitern gehört das hinzufügen von Monitoring und Logging Services.
Kubernetes ist die beliebteste Plattform für das betreiben von Containern. Die grossen Hyperscaler bieten ihre eigenen Kubernetes Services an.
Diese Services basieren auf derselben Kubernetes Basis aber bieten unterschieliche Funktionen / APIs an.
Das erstellen eines Clusters kann auf verschiedene Arten gemacht werden. Die Cluster können im Web Interface des Providers zusammengecklickt werden, via der Provider spezifischen CLI oder mit IAC Tools wie Terraform.
Das erstellen von Clustern mit Terraform unterscheidet sich zwischen Azure und AWS deutlich. Bei Azure kann mit wenigen Zeilen Terraform Code ein vollständiger Kubernetes Cluster erstellt werden. Bei AWS hingegen müssen einzelne Komponenten wie IAM Ressourcen, OIDC Provider oder das EBS Storage Addon zusätzlich manuell via Terraform erstellt werden.
Es gibt 3 Scripts für das erstellen der Cluster:
Ein Script für den AKS Cluster, ein Script für den EKS Cluster und ein Script, bei dem die vorherigen zwei Scripts als Module eingebunden werden und so sowohl mehrere AKS als auch EKS Cluster erstellt werden können.
Für das erweitern der Cluster gibt es ein Python Script, welches via Helm auf jeden Cluster ArgoCD installiert und eine ArgoCD Applikation erstellt, welche die Erweiterungen wie Logging und Monitoring erhalten.
| Projekt-Typ: | IP6 |
|---|---|
| Projekt-Start: | September 2022 |
| Projekt-Ende: | April 2023 |
| Aufwand: | Total: 720h, Pro Person: 360h |
| Team Grösse: | 2 |
Fachhochschule Nordwestschweiz FHNW
Sebastian Graf
Bahnhofstrasse 6
5210 Windisch
Fabian Businger, fabian.businger@students.fhnw.ch
Marco Baumann, marco.baumann@students.fhnw.ch
Sebastian Graf, sebastian.graf@fhnw.ch