Kubernetes-Cluster erzeugen

Nachdem wir die Basis-Infrastruktur in Form von Hetzner Cloud-Servern provisioniert und konfiguriert haben, fehlt nun nur noch ein letzter Schritt zum laufenden Kubernetes-Cluster. Diesen Schritt dokumentiere ich mit diesem Blogpost. Kubespray Eine der vielen Möglichkeiten, ein Kubernetes-Cluster aufzusetzen, ist Kubespray. Kubespray setzt, wie ich bereits im Blogpost Konfiguration der Basis Infrastruktur angedeutet hatte, auf Ansible. Dies ist auch der Hauptgrund, weshalb ich mich für Kubespray entschieden habe. Mit Ansible hatte ich bereits einige gute Erfahrungen gesammelt und mich deshalb früh entschieden, Ansible für das Basis-Setup zur Konfiguration der Basis Infrastruktur einzusetzen. …

Konfiguration der Basis Infrastruktur

Als ich mit meinen Experimenten begann, bot Hetzner nicht die Möglichkeit, private Netzwerke zu erzeugen. Jeder Hetzner-Server hat eine öffentliche IP-Adresse und steht damit im Internet. Somit stellte sich unmittelbar die Frage nach der Sicherheit. Das Thema spielt auf verschiedenen Ebenen eine Rolle. Um die Kommunikation zwischen Master und Nodes abzusichern, entschied ich mich, Wireguard zu verwenden. Um die Zahl der möglichen Angriffsvektoren zu minimieren, werden per Uncomplicated Firewall (UFW) alle nicht explizit benötigten Ports geschlossen werden. …

Basis Infrastrukur erzeugen

Mit den vielen einleitenden Worten und Vorbemerkungen ist jetzt Schluss. Umgebung für die Clustererzeugung vorbereiten Im ersten Schritt legen wir ein Basisverzeichnis und darin das Verzeichnis repos an. Das Basisverzeichnis heißt bei mir clusterbase. Nachdem ich die Verzeichnisse angelegt habe, clone ich das Repository nettista-bootstrap Dann werden einige für das weitere Setup notwendige Abhängigkeiten installiert und schließlich die Tools Terraform, Helm und die Hetzner CLI heruntergeladen. Die Schritte im Einzelnen: …

Überblick

Die Reihe der Blogposts und Scripte orientiert sich an einem geschichteten Aufbau von der niedrigen Abstraktion zur immer höheren Abstraktion. In der Abbildung sind die einzelnen Schichten und die zugehörigen Automatisierungswerkzeuge (Terraform, Ansible, Helm) abgebildet. Außerdem verwende ich gerne Bash-Scripte, um einzelne Schritte zusammenzufassen. Die Automatisierung Um im nächsten Blogpost sofort loslegen zu können, hier bereits vorab einige Informationen zur Organisation der Automatisierung. Die meisten Schritte sind mittels Terraform, Ansible und Helm sowie einigen Scripten automatisiert. …

Einige Vorbemerkungen

Bevor es im nächsten Blogpost richtig los geht, hier noch einige Vorbemerkungen. nettista.net Die Domain und der Name nettista.net stammen aus einem alten Projekt und erfahren nun eine Wiederverwendung. Ich nutze den Name ein wenig so, wie Microsoft Contoso verwendet. Analog dazu ist es im Kontext des Blogs als der Name eines virtuellen Unternehmens zu verstehen, das plant eine Kubernetes-Plattform zur Verfügung zu stellen. Dabei ist eine Automatisierung zu entwickeln, um diese Plattform aufzusetzen. …