In diesem Blogbeitrag erfahrt ihr, wie ihr im Xelon Kubernetes Service Persistent Storage erstellen und einrichten könnt.
Kubernetes bietet zentrale Funktionen zur Verwaltung containerisierter Anwendungen: Das Open-Source-System übernimmt die Orchestrierung von Containern, die beispielsweise in Docker-Umgebungen betrieben werden, und sorgt dafür, dass diese auf verschiedenen Hosts koordiniert ausgeführt werden. Bei Bedarf kann Kubernetes automatisch die Anzahl aktiver Container an die aktuelle Auslastung anpassen. Fällt ein Container aus, wird er durch das System neu gestartet oder ersetzt, um die Verfügbarkeit der Anwendung aufrechtzuerhalten. Der eingehende Netzwerkverkehr wird gleichmässig auf die Container verteilt, was zur Stabilität und Leistungsfähigkeit beiträgt. Ausserdem unterstützt Kubernetes die schrittweise Bereitstellung neuer Versionen und ermöglicht bei Problemen eine einfache Rückkehr zu vorherigen Zuständen.
Neben Software-Developern und SaaS-Unternehmen - bei denen sich Kubernetes längst etabliert hat - macht es auch für immer mehr Managed-Service-Provider Sinn, die moderne Container-Technologie Kubernetes in ihr Dienstleistungsangebot aufzunehmen. Der Aufbau einer stabilen, hochverfügbaren Control Plane erfordert jedoch nicht nur fundiertes Know-how in Container-Orchestrierung, sondern bedeutet auch erheblichen Aufwand für Wartung, Sicherheitsupdates und Skalierung. Mit dem Xelon Kubernetes Service erhalten Managed-Service-Provider nun allerdings eine vollständig verwaltete Kubernetes-Lösung, die sich unter eigener Marke weiterverkaufen lässt.
Als Teil unserer Kubernetes-Serie zeigen wir euch nachfolgend, wie ihr im Xelon Kubernetes Service Persistent Storage erstellen und einrichten könnt.
So funktioniert Persistent Storage im Xelon Kubernetes Service
Standardmässig werden die von Containern erzeugten Daten nicht aufbewahrt. Wenn ein Container gelöscht wird, werden auch seine Daten zerstört. Containerisierte Anwendungen, die Datenpersistenz benötigen, brauchen ein Speicher-Backend, das nicht zerstört wird, wenn der Container der Anwendung beendet wird. Aus diesem Grund könnt ihr mit der Cloud-Management-Plattform Xelon HQ einen persistenten Speicher erstellen - einen Dienst, mit dem eure Daten ausserhalb der Pods gespeichert werden können.
Wir zeigen in diesem Blogbeitrag, wie Persistent Storage mit Kubernetes Clustern im Cloud-Management-Tool Xelon HQ funktioniert.
Fügt persistenten Speicher zu eurem Cluster hinzu
Auf der Seite für Persistent Storage klickt ihr auf die grüne Schaltfläche Create Persistent Storage. Es öffnet sich ein Assistent, in dem ihr den Namen des persistenten Speichers, sein Volumen (von 5 bis 1000 GB) und die Zuordnung zu einer Organisation und deren Gerät angeben sollten.
Wenn alles fertig ist, klickt Deploy Persistent Storage.
Er wird in der Liste aller Persistent Storages angezeigt - dort könnt ihr sein Volumen erweitern, an ein anderes Gerät anhängen oder löschen.
Wie man NFS in Kubernetes verwendet
Voraussetzungen:
- Ein laufendes Kubernetes-Cluster; wir empfehlen v1.18 oder höher.
- Ein laufender Node mit etwas verfügbarem Speicher.
NFS-Server bereitstellen und konfigurieren
Führt die folgenden Befehle auf eure NFS-Server-Node aus:
apt update && apt -y upgradeapt install -y nfs-servermkdir /datacat << EOF >> /etc/exports
/data 192.168.12.0/24(rw,no_subtree_check,no_root_squash)
EOFsystemctl enable --now nfs-serverexportfs -ar
Ihr könnt den NFS-Server auch auf eine clusterfähige Weise mit Unterstützung für hohe Availability bereitstellen.
Dynamic provisioning mit StorageClass
Um Persistent Storage dynamisch mit der StorageClass zu provisionieren, müsst ihr den NFS provisioner installieren. Wir benutzen den nfs-subdir-external-provisioner. Die folgenden Commands installieren alles, was wir brauchen indem das Helm Package verwendet wird:
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisionerhelm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--create-namespace \
--namespace nfs-provisioner \
--set nfs.server=IP_OFF_THE_NFS_NODE \
--set nfs.path=/data
Kubernetes mit der NFS StorageClass
Um den PersistentVolumeClaim zu erstellen, verwendet ihr das folgende Manifest:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-test
labels:
storage.k8s.io/name: nfs
storage.k8s.io/created-by: mstoeckle
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 1Gi
Kubernetes mit der NFS Storage Specification
NFS hat die folgenden Spezifikationen, die beachtet werden müssen, bevor ihr den NFS-Speicher verwenden:
- ReadWriteOnce, ReadOnlyMany, ReadWriteMany access modes.
- Die Speichergrösse spielt dabei keine Rolle.
- Bei der dynamischen Bereitstellung werden die Datenträger in verschiedene Verzeichnisse aufgeteilt (jedoch ohne Zugriffskontrolle).
Der Xelon Kubernetes Service unterstützt Software-Entwickler und SaaS-Provider beim Aufbau und dem Betrieb sicherer und hochverfügbarer Applikationen und Microservices. Hier könnt ihr mehr über unseren Kubernetes Service erfahren.