OpenStack
Das OpenStack der noris Sovereign Cloud (nSC) ermöglicht es Benutzern, Compute-, Storage- und Netzwerkressourcen zu provisionieren. Neben Block-Storage bieten wir auch S3 Object Storage an. Weitere Informationen finden Sie in der Dokumentation.
Erste Schritte
Abschnitt betitelt „Erste Schritte“Dieser Abschnitt führt Sie durch die Schritte zum Erstellen, Zugreifen auf und Verwalten Ihrer ersten virtuellen Maschine mit der nSC.
Nutzung des Webinterfaces
Abschnitt betitelt „Nutzung des Webinterfaces“Unser Dashboard in Nürnberg (“NBG”) ist hier verfügbar: dashboard.nbg.nsc.noris.cloud. Melden Sie sich mit dem in Ihrer Anmelde-E-Mail angegebenen Benutzer an, das Feld „Domain” bleibt leer.
Wenn Ihnen die Nutzung der CLI vertrauter ist, finden Sie die entsprechende Anleitung weiter unten.
Übersicht
Abschnitt betitelt „Übersicht“Beachten Sie die Navigationsleiste rechts: Die den Schritten entsprechenden Menüpunkte sind mit den jeweiligen Nummern hervorgehoben.
- Netzwerk und Subnetz erstellen
- Router erstellen
- Security Group erstellen
- SSH-Keypair erstellen
- Compute-Instanz erstellen
- Instanz mit dem Internet verbinden
- Per SSH verbinden

Schritt 1: Netzwerk und Subnetz erstellen
Abschnitt betitelt „Schritt 1: Netzwerk und Subnetz erstellen“Zunächst müssen wir ein (virtuelles) Netzwerk erstellen. Sowohl die Compute-Instanz als auch der Router werden Teil dieses Netzwerks.
Gehen Sie zu Network → Networks.

Klicken Sie auf Create Network.

Geben Sie Ihrem Netzwerk einen Namen (in dieser Anleitung verwenden wir my_nsc_network). Dies ist Ihr lokales Netzwerk.

Geben Sie den Namen des Subnetzes ein und legen Sie einen Subnetzbereich fest. Falls Sie ein komplexeres Netzwerk-Setup konfigurieren müssen, finden Sie Dokumentation zu reinem IPv6 und Dual-Stack-Netzwerken.

Lassen Sie Enable DHCP aktiviert und klicken Sie auf CREATE.

Schritt 2: Router erstellen
Abschnitt betitelt „Schritt 2: Router erstellen“Als Zweites wird ein Router erstellt, der sowohl mit Ihrem Netzwerk als auch mit dem externen Netzwerk verbunden ist. Dies stellt die WAN-Konnektivität sicher.
Navigieren Sie zu Network → Routers.

Klicken Sie auf CREATE ROUTER.

Wählen Sie einen Namen und wählen Sie unter External Network das externe Netzwerk (das Public Network) aus. Schließen Sie mit einem Klick auf CREATE ROUTER ab.

Die virtuelle Router-Instanz wird nun angezeigt. Klicken Sie auf ihren Namen:

Navigieren Sie zum Tab Interfaces und klicken Sie auf ADD INTERFACE:

Wählen Sie im Dropdown unser lokales Netzwerk aus:

Netzwerkübersicht prüfen
Abschnitt betitelt „Netzwerkübersicht prüfen“Überprüfen Sie Ihre Änderungen abschließend visuell in der Network Topology-Ansicht unter Network.

Schritt 3: Security Group erstellen
Abschnitt betitelt „Schritt 3: Security Group erstellen“Standardmäßig ist eingehender Traffic beschränkt. Um SSH-Zugriff zu ermöglichen, erstellen und wenden wir eine Security Group an.
Navigieren Sie zu Network → Security Groups.

Klicken Sie auf CREATE SECURITY GROUP.

Geben Sie der Security Group einen passenden Namen (und bei Bedarf eine Beschreibung) und klicken Sie auf CREATE SECURITY GROUP:

Klicken Sie auf ADD RULE.

Geben Sie die Portnummer 22 ein und klicken Sie auf ADD.

Schritt 4: SSH-Keypair erstellen
Abschnitt betitelt „Schritt 4: SSH-Keypair erstellen“Die SSH-Authentifizierung erfolgt passwortlos per Schlüssel, daher müssen wir eine schlüsselbasierte Authentifizierung einrichten. Falls Sie bereits einen SSH-Schlüssel besitzen, passen Sie die Schritte entsprechend an, indem Sie statt CREATE KEY PAIR die Schaltfläche IMPORT PUBLIC KEY verwenden.
Navigieren Sie zu Compute → Key Pairs und klicken Sie auf CREATE KEY PAIR.

Wählen Sie einen passenden Namen und wählen Sie im Dropdown Key Type die Option SSH Key. Schließen Sie mit einem Klick auf CREATE KEY PAIR ab. Die Schlüsseldaten werden automatisch über Ihren Browser heruntergeladen:

Schritt 5: Compute-Instanz erstellen
Abschnitt betitelt „Schritt 5: Compute-Instanz erstellen“Navigieren Sie zu Compute → Instances.

Klicken Sie auf LAUNCH INSTANCE.

Wählen Sie einen Namen und klicken Sie auf NEXT:

In diesem Schritt können Sie bei Verwendung von diskless (disk=0) Flavors (empfohlen, siehe Instanz-Flavors unten) die Größe Ihres rbd_fast-Root-Volumes frei festlegen. Falls Sie stattdessen ein LUKS-Root-Volume verwenden möchten, siehe Erstellen einer VM mit LUKS-basiertem Root-Volume unten. Wählen Sie anschließend Ihr OS-Image und klicken Sie auf NEXT:

Der Flavor bestimmt, welche Ressourcen Ihre virtuelle Cloud-Maschine erhält. Wir empfehlen diskless Flavors (disk=0), um die Größenänderung von Root-Volumes nach der Ersterstellung zu ermöglichen. Wählen Sie passend zu Ihren Quotas und Host-Anforderungen:

Verknüpfen Sie die VM im Abschnitt „Networks” mit Ihrem Netzwerk my_nsc_network:

Klicken Sie auf Security Groups. Wählen Sie die zuvor erstellte Security Group ssh_access:

Schritt 6: Instanz mit dem Internet verbinden
Abschnitt betitelt „Schritt 6: Instanz mit dem Internet verbinden“Ihrer Compute-Instanz wird eine Floating IP zugeordnet. Diese wird aus dem vorbereiteten externen Netzwerk bezogen und macht Ihre Instanz öffentlich erreichbar. Solange Sie diese IP nicht freigeben, bleibt sie Ihnen zugeordnet und Ihrem OpenStack-Projekt zugewiesen.
Wählen Sie im Dropdown-Menü Ihrer Compute-Instanz ASSOCIATE FLOATING IP.

Klicken Sie auf die Schaltfläche „+”.

Klicken Sie auf ALLOCATE IP:

Klicken Sie auf ASSOCIATE:

Schritt 7: Per SSH verbinden
Abschnitt betitelt „Schritt 7: Per SSH verbinden“Jetzt möchten Sie sich mit Ihrer neuen Cloud-Instanz verbinden. In der Instances-Ansicht sollten Sie nun die Floating IP sowie das Key Pair sehen.

Wenn Sie Ihre Instanz auswählen, navigieren Sie zu Log. Dort sehen Sie den Fingerprint des Hosts. Sie können den Fingerprint des SSH-Schlüssels gerne mit Ihrer lokalen Kopie vergleichen:

Sie können sich nun mit Ihrer neuen VM verbinden.
Nutzung der CLI / Ansible / Terraform
Abschnitt betitelt „Nutzung der CLI / Ansible / Terraform“Unser Dashboard in Nürnberg (“NBG”) ist hier verfügbar: dashboard.nbg.nsc.noris.cloud. Melden Sie sich mit dem in Ihrer Anmelde-E-Mail angegebenen Benutzer an, das Feld „Domain” bleibt leer.
OpenStack bietet eine leistungsstarke Kommandozeilen-CLI. Diese Anleitung zeigt an geeigneter Stelle Nutzungsbeispiele. Sie kann gemäß der offiziellen Dokumentation installiert werden.
Application Credentials
Abschnitt betitelt „Application Credentials“Application Credentials sind erforderlich, um die genannten Clients zu nutzen, sie ermöglichen es Benutzern, Anmeldedaten speziell für ihre Anwendungen zu erstellen, ohne ihre persönlichen Benutzerpasswörter offenzulegen. Siehe unsere separate Anleitung: OpenStack Application Credentials.
Terraform & Ansible
Abschnitt betitelt „Terraform & Ansible“Wir haben Code-Beispiele vorbereitet, die zeigen, wie man die nSC sowohl mit Terraform als auch mit Ansible integriert:
Diese Beispiele lassen sich auch auf kompatible Tools wie Pulumi übertragen.
Das erste Netzwerk erstellen
Abschnitt betitelt „Das erste Netzwerk erstellen“Erstellen Sie ein Netzwerk, es dient als privates Netzwerk für Instanzen:
openstack network create examplenetworkErstellen Sie ein Subnetz namens examplesubnet, das mit examplenetwork verknüpft ist und den IP-Adressbereich 192.168.42.0/24 verwendet. Dieser Bereich definiert die im Subnetz verfügbaren IP-Adressen:
openstack subnet create examplesubnet --network examplenetwork --subnet-range 192.168.42.0/24Erstellen Sie einen Router und legen Sie das externe Gateway fest, damit Instanzen im privaten Netzwerk über das external-Netzwerk als Gateway auf externe Netzwerke wie das Internet zugreifen können:
openstack router create examplerouter --external-gateway externalFügen Sie das Subnetz-Interface zum Router hinzu, um das Subnetz mit der Router-Schnittstelle zu verknüpfen und das Routing zwischen dem Subnetz und dem externen Netzwerk zu ermöglichen:
openstack router add subnet examplerouter examplesubnetErstellen Sie eine Security Group namens examplesecurity, die den Netzwerkverkehr zu Instanzen kontrolliert:
openstack security group create examplesecurityFügen Sie eine Security-Group-Regel für SSH-Zugriff hinzu, die allen eingehenden TCP-Traffic auf Port 22 (SSH) zu Instanzen innerhalb der Security Group examplesecurity erlaubt (optional können Sie auch Quellnetzwerke einschränken):
openstack security group rule create --ingress --dst-port 22 --protocol tcp examplesecurityZugriffsschlüssel erstellen
Abschnitt betitelt „Zugriffsschlüssel erstellen“Erstellen Sie ein SSH-Keypair namens examplekey für den Instanzzugriff, wobei der private Schlüssel lokal mit sicheren Berechtigungen in der Datei id_rsa.cloud gespeichert wird. Dieser Schlüssel wird für die SSH-Authentifizierung an der Instanz verwendet, alternativ können Sie auch Ihren bestehenden SSH-Schlüssel hochladen.
openstack keypair create examplekey > id_rsa.cloud; chmod 0600 id_rsa.cloudIhre erste VM erstellen
Abschnitt betitelt „Ihre erste VM erstellen“Erstellen Sie eine virtuelle Maschine examplevm mit dem angegebenen Flavor (Ressourcengröße) und Image (Debian 12), verbinden Sie sie mit dem Netzwerk examplenetwork, weisen Sie ihr die Security Group examplesecurity sowie das Keypair examplekey zu und erstellen Sie ein rbd_fast-Root-Volume mit einer Größe von 50 GB. Wir empfehlen die Verwendung von diskless Flavors (wie in diesem Beispiel), um eine nachträgliche Größenänderung des Root-Volumes nach der Ersterstellung zu ermöglichen.
openstack server create --flavor SCS-1V-2 --image 'Debian 12' --key-name examplekey --network examplenetwork --security-group examplesecurity --boot-from-volume 50 examplevmFür die Erstellung einer VM mit LUKS für das Root-Volume siehe unser Beispiel weiter unten.
Floating IPs zur Erreichbarkeit nutzen
Abschnitt betitelt „Floating IPs zur Erreichbarkeit nutzen“Erstellen Sie eine Floating (öffentliche) IP aus dem externen Netzwerk, um den öffentlichen Zugriff auf die Instanz zu ermöglichen. Notieren Sie sich Ihre öffentliche IP, da Sie sie in den nächsten beiden Schritten benötigen:
openstack floating ip create externalNotieren und ordnen Sie die Floating IP der Instanz zu, damit diese von außen erreichbar wird:
openstack server add floating ip examplevm 213.95.55.34Verbinden Sie sich per SSH mit der Instanz, unter Verwendung des zuvor erzeugten privaten Schlüssels und der Floating-IP-Adresse:
ssh -i id_rsa.cloud debian@213.95.55.34Solange Sie diese IP nicht freigeben, bleibt sie Ihnen zugeordnet und Ihrem OpenStack-Projekt zugewiesen.
Herzlichen Glückwunsch, Sie haben nun Ihre erste VM bereitgestellt und genutzt! Sie können diese Getting-Started-Anleitung an dieser Stelle verlassen, falls die folgenden erweiterten Optionen für Ihren Anwendungsfall nicht relevant sind.
VM-Größe ändern
Abschnitt betitelt „VM-Größe ändern“Ändern Sie die Größe der VM examplevm auf den Flavor SCS-2V-4:
openstack server resize --flavor SCS-2V-4 examplevmPrüfen Sie, dass alles wie erwartet funktioniert, und geben Sie anschließend die alte Instanz frei:
openstack server resize confirm examplevmVolume erstellen und anhängen
Abschnitt betitelt „Volume erstellen und anhängen“Sie können mit folgendem Code ein Volume erstellen. Es hat 10 GB Größe und verwendet den Volume-Typ rbd_fast. Bitte wählen Sie dieselbe Availability Zone wie Ihre VM, da Volumes nur in derselben Zone angehängt werden können.
openstack volume create --size 10 --type rbd_fast --description "example-volume" --availability-zone <AZ> example-volumeNotieren Sie sich die Volume-ID, um sie an Ihren Server anzuhängen:
openstack server add volume examplevm <volume-id>S3 Object Storage
Abschnitt betitelt „S3 Object Storage“Neben Block-Storage-Volumes bietet die nSC auch objektbasierten Cloud-Storage über die S3-kompatible API sowie die OpenStack-Swift-API. Dokumentiert unter S3 Object Storage.
Ein Betriebssystem-Image hochladen
Abschnitt betitelt „Ein Betriebssystem-Image hochladen“Beim Hochladen neuer Betriebssystem-Images empfehlen wir das QCOW2-Format, das für die meisten Distributionen verfügbar ist.
openstack image create --disk-format qcow2 --file ./your-image-file.qcow2 exampleimageEinen Loadbalancer erstellen und nutzen
Abschnitt betitelt „Einen Loadbalancer erstellen und nutzen“Zunächst müssen wir einen Load Balancer erstellen. openstack subnet list liefert die Subnetz-ID. In diesem Beispiel wählen wir den Provider OVN.
openstack loadbalancer create --name exampleloadbalancer --provider ovn --vip-subnet-id <subnet_id>Notieren Sie sich die Load-Balancer-ID, um einen Listener zu erstellen:
openstack loadbalancer listener create --name examplevm-listener --protocol TCP --protocol-port 80 <loadbalancer_id>Erstellen Sie einen Load-Balancer-Pool und wählen Sie Ihren Load-Balancing-Algorithmus:
openstack loadbalancer pool create --name examplevm-pool --lb-algorithm SOURCE_IP_PORT --listener examplevm-listener --protocol TCP --waitFügen Sie examplevm als Pool-Mitglied hinzu, ersetzen Sie <private-subnet-id> durch die Subnetz-ID, in der sich examplevm befindet, und <examplevm-ip> durch die IP-Adresse der VM examplevm:
openstack loadbalancer member create --subnet-id <private-subnet-id> --address <examplevm-ip> --protocol-port 80 --wait <example-pool-id>Erstellen Sie einen Health-Monitor, um die Backend-Gesundheit zu prüfen:
openstack loadbalancer healthmonitor create --delay 5 --max-retries 3 --timeout 10 --type TCP --wait examplevm-poolUm ihn über das Internet erreichbar zu machen, erstellen Sie eine Floating IP:
openstack floating ip create externalAnschließend kann sie für den VIP-Port des Load Balancers konfiguriert werden:
openstack floating ip set --port <vip_port_id> <floating_ip_address>Erstellen einer VM mit LUKS-basiertem Root-Volume
Abschnitt betitelt „Erstellen einer VM mit LUKS-basiertem Root-Volume“Prüfen Sie die verfügbaren Images und notieren Sie sich den passenden Image-Namen:
openstack image listErstellen Sie ein LUKS-Volume mit dem notierten Image, in diesem Beispiel „Debian 12”:
openstack volume create --image "Debian 12" --size 10 --type luks --description "example-luks" --availability-zone <AZ> example-luksAnschließend kann der Server unter Verwendung des Volumes example-luks als Basis erstellt werden:
openstack server create --flavor SCS-1V-2 --volume example-luks --key-name examplekey --network examplenetwork --security-group examplesecurity example-luksElemente löschen
Abschnitt betitelt „Elemente löschen“Führen Sie dieselben oben beschriebenen Befehle aus, ersetzen Sie jedoch create durch delete.
In OpenStack sind noch viele weitere spezialisierte Optionen verfügbar, deren vollständige Dokumentation den Rahmen dieser Anleitung sprengen würde. Ein paar Beispiele, was möglich ist:
- Volume-Transfer: Übertragung eines Volumes an ein anderes Projekt.
- Konsolen-Log: Anzeige des Konsolen-Logs einer VM.
- DNS: Wenn Sie eine (Sub-)Domain an uns delegieren, können wir Einträge in dieser Zone konfigurieren, sprechen Sie uns an!
- Server-Group: Gruppierung von VMs mit Affinitäts- oder Anti-Affinitätseigenschaften, um zu beeinflussen, wo sie auf physischen Hosts platziert werden.
- Volume-Group: gemeinsame Verwaltung von Volumes.
Monitoring
Abschnitt betitelt „Monitoring“OpenStack stellt grundlegende Metriken wie Instanz-Status, CPU-, RAM- und Speicherauslastung im Horizon-Dashboard unter Project → Compute → Instances bereit. Für eine umfassendere Überwachung Ihrer VMs empfehlen wir den Einsatz eigener Monitoring-Tools wie Prometheus und Grafana.
Backup und Wiederherstellung
Abschnitt betitelt „Backup und Wiederherstellung“Für das Sichern von S3-Buckets siehe S3 Object Storage.
Ein Volume sichern und wiederherstellen
Abschnitt betitelt „Ein Volume sichern und wiederherstellen“Backup via Webinterface
Abschnitt betitelt „Backup via Webinterface“- Gehen Sie zu Project → Volumes → Volumes.
- Wählen Sie das gewünschte Volume, öffnen Sie das Aktionsmenü und klicken Sie auf Create Backup.
- Geben Sie einen Backup-Namen ein und legen Sie bei Bedarf eine andere Availability Zone fest.
- Nach Abschluss erscheint das Backup unter Project → Volumes → Backups mit dem Status “available”.
Backup via CLI
Abschnitt betitelt „Backup via CLI“Um ein Volume in einer bestimmten Availability Zone zu sichern:
openstack volume backup create --name <BACKUP-NAME> --availability-zone <DESTINATION-ZONE-NAME> <VOLUME-NAME-or-ID>Mit dem Flag --force können Sie bei Bedarf auch aktuell angehängte (in Nutzung befindliche) Volumes sichern. Für die vollständige Liste der Parameter verwenden Sie den Parameter --help.
Offizielle Dokumentation: docs.openstack.org/cinder/latest/admin/volume-backups.html
Ein Volume über das Webinterface wiederherstellen
Abschnitt betitelt „Ein Volume über das Webinterface wiederherstellen“- Navigieren Sie zu Project → Volumes → Backups.
- Wählen Sie das wiederherzustellende Backup aus.
- Klicken Sie auf Restore Backup.
- Geben Sie einen Namen für das neue Volume an, das aus dem Backup erstellt wird.
- Wählen Sie optional eine Availability Zone, falls Ihre OpenStack-Umgebung dies unterstützt.
- Bestätigen Sie den Wiederherstellungsvorgang.
- Nach Abschluss erscheint das wiederhergestellte Volume unter Project → Volumes → Volumes und kann an eine Instanz angehängt werden.
Bei LUKS-Backups: Legen Sie vorab unter Project → Volumes → Volumes ein neues, leeres LUKS-Volume entsprechender Größe an und wählen Sie es als Restore-Ziel. Ohne diesen Schritt legt der Restore-Dialog das Zielvolume ohne Wahl des Volume-Typs neu an, sodass ein unverschlüsseltes rbd_fast-Volume entstünde, in das sich ein LUKS-Backup nicht wiederherstellen lässt (Status „Error Restoring”).
Ein Volume über die CLI wiederherstellen
Abschnitt betitelt „Ein Volume über die CLI wiederherstellen“openstack volume backup restore <BACKUP-ID> <NEW-VOLUME-NAME-or-ID>Hängen Sie das Volume anschließend an Ihre VM an.
Bei LUKS-Backups: Legen Sie vorab ein neues, leeres LUKS-Volume gleicher Größe als Ziel an (siehe Volume erstellen und anhängen sowie Erstellen einer VM mit LUKS-basiertem Root-Volume):
openstack volume create --size <GRÖSSE> --type luks --availability-zone <AZ> <NEUES-LUKS-VOLUME>Geben Sie beim Restore den Namen oder die ID dieses Volumes als Ziel an. Dies zeigt, dass das Backup ebenfalls verschlüsselt ist: Ein Restore in ein unverschlüsseltes rbd_fast-Volume würde fehlschlagen und das Volume im Status „Error Restoring” verbleiben.
Eine VM sichern und wiederherstellen
Abschnitt betitelt „Eine VM sichern und wiederherstellen“Eine VM wird in OpenStack als Instance bezeichnet. Als backup-relevante Boot-Quellen einer Instance sind ein Instance-Snapshot, ein Volume oder ein Volume-Snapshot zulässig. Ein Volume-Backup muss dafür zunächst in ein Volume wiederhergestellt werden.
Backup via Webinterface
Abschnitt betitelt „Backup via Webinterface“- Navigieren Sie zu Project → Compute → Instances.
- Suchen Sie die gewünschte VM und klicken Sie im Aktionsmenü auf Create Snapshot.
- Geben Sie einen Namen für den Snapshot (das Backup) an und bestätigen Sie die Erstellung.
- Nach Abschluss finden Sie das Backup unter Project → Compute → Images mit dem Status “available”.
Backup via CLI
Abschnitt betitelt „Backup via CLI“Um eine VM über die CLI zu sichern, führen Sie folgenden Befehl aus:
openstack server image create --name <SNAPSHOT-NAME> <VM-NAME-OR-ID>Der Parameter --rotate kann nützlich sein, um eine bestimmte Anzahl an Backups vorzuhalten. Für die vollständige Liste der Parameter verwenden Sie den Parameter --help.
Eine VM wiederherstellen
Abschnitt betitelt „Eine VM wiederherstellen“Um eine VM aus einem Snapshot wiederherzustellen, starten Sie gemäß der obigen VM-Erstellungsanleitung eine neue Instanz. Der einzige Unterschied besteht darin, dass der Image-Snapshot als Quelle der Instanz verwendet wird.
Bei einem LUKS-verschlüsselten Instance-Snapshot ist beim Wiederherstellen erneut LUKS als Volume-Typ auszuwählen. Dies zeigt, dass die Daten im Instance-Snapshot-Image ebenfalls verschlüsselt sind.
Wichtige Hinweise zu Backups
Abschnitt betitelt „Wichtige Hinweise zu Backups“- Testen Sie die Wiederherstellung Ihrer Backups regelmäßig, um Datensicherheit und Funktionsfähigkeit zu gewährleisten.
- Das Überschreiben bestehender Volumes und VMs ist nicht möglich, planen Sie daher vorausschauend, wie die Umstellung auf die neu wiederhergestellten VMs und Volumes ablaufen soll.
- Wenn ein Volume eingehängt und in Nutzung ist, können das Betriebssystem und laufende Anwendungen Daten im Arbeitsspeicher oder in Anwendungspuffern zwischenspeichern. Sichern oder snapshotten Sie ein Volume, während es noch eingehängt und aktiv ist, werden aktuelle Änderungen, die sich noch im Speicher befinden und noch nicht auf die Platte geschrieben wurden, nicht mit einbezogen, dies kann zu einem inkonsistenten oder „crash-consistent” Backup führen, ähnlich dem Ziehen des Steckers bei einem Server, was nach der Wiederherstellung zu Datenverlust oder -beschädigung führen kann. Wenn Ihr Anwendungsfall Sicherheit unter diesen Umständen erfordert, hängen Sie das Volume vor der Sicherung bitte aus, damit alle ausstehenden Änderungen sicher auf die Platte geschrieben werden, und/oder nutzen Sie spezifische Anwendungs-Backup-Werkzeuge, z.B.
pgbackup. - Diese Backups sind einmalige Jobs. Um sie periodisch auszulösen, können Sie Application Credentials auf einem Server nutzen und diese Befehle per Cronjob ausführen.
Reverse DNS (PTR-Einträge)
Abschnitt betitelt „Reverse DNS (PTR-Einträge)“Reverse DNS löst eine IP-Adresse zu einem Namen auf (PTR-Eintrag). In der nSC setzen Sie PTR-Einträge für IPv4-Floating-IPs selbst, etwa um einen Mail-Server betreiben zu können (viele Empfänger prüfen Forward Confirmed Reverse DNS, FCrDNS) oder um IP-Adressen in Logs besser lesbar zu machen. Für IPv6 wenden Sie sich an Ihre Ansprechperson bei noris.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Ihnen ist eine IPv4-Floating-IP zugewiesen (siehe Floating IPs zur Erreichbarkeit nutzen).
- Der Forward-DNS-Eintrag des gewünschten Namens muss bereits auf die Floating-IP auflösen, damit Vorwärts- und Rückwärtsauflösung konsistent sind (FCrDNS).
- Der PTR-Eintrag lässt sich nicht bereits bei der Erstellung der Floating-IP im Horizon setzen, sondern wird als separater Folgeschritt angelegt.
Im OpenStack-Dashboard (Horizon)
Abschnitt betitelt „Im OpenStack-Dashboard (Horizon)“- Navigieren Sie zu Project → Network → DNS → Reverse DNS.
- Wählen Sie die gewünschte IPv4-Floating-IP aus der Liste.
- Klicken Sie auf Set.
- Tragen Sie in das Feld Domain Name den vollqualifizierten Domänennamen ein, inklusive abschließendem Punkt (z. B.
mail.example.com.). - Bestätigen Sie den Eintrag.
Über die CLI
Abschnitt betitelt „Über die CLI“Ermitteln Sie zuerst die ID der Floating-IP:
openstack floating ip listSetzen Sie den PTR-Eintrag. Der Name ist der FQDN mit abschließendem Punkt:
openstack ptr record set <floating_ip_id> mail.example.com.Prüfen Sie den gesetzten Eintrag:
openstack ptr record show <floating_ip_id>Entfernen lässt sich der Eintrag mit:
openstack ptr record unset <floating_ip_id>Für IPv6-Adressen ist Reverse DNS kein Self-Service. Wenden Sie sich für IPv6-PTR-Einträge über ein Support-Ticket an Ihre Ansprechperson bei noris.
Auflösung prüfen
Abschnitt betitelt „Auflösung prüfen“Prüfen Sie die Auflösung mit dig:
dig -x 213.95.55.34Der PTR-Eintrag liegt in der in-addr.arpa-Zone und wird von der nSC automatisch publiziert. Die Propagation erfolgt nahezu augenblicklich.
Hinweise
Abschnitt betitelt „Hinweise“- FCrDNS: Viele Mail-Empfänger prüfen, ob Vorwärts- und Rückwärtsauflösung der Absender-IP übereinstimmen. Achten Sie darauf, dass der Forward-DNS des eingetragenen Namens auf dieselbe IP zeigt.
- Adressfreigabe: Geben Sie die Floating-IP frei, fällt auch der PTR-Eintrag weg. Die IP selbst lässt sich danach nicht zurückholen (siehe Floating IPs zur Erreichbarkeit nutzen).
- Höheres Volumen oder IPv6: Wenden Sie sich an Ihre Ansprechperson bei noris.
Bekannte Probleme
Abschnitt betitelt „Bekannte Probleme“Passwortänderung im OpenStack-Dashboard schlägt fehl
Abschnitt betitelt „Passwortänderung im OpenStack-Dashboard schlägt fehl“Der Versuch, das Passwort Ihres Benutzers in OpenStack zu ändern, schlägt fehl, da das gesamte Identity- und Access-Management (IAM) der nSC vom Identity Provider der noris Sovereign Cloud (Zitadel) unter id.nbg.nsc.noris.cloud übernommen wird. Wenn Sie Ihr Passwort ändern möchten, tun Sie dies in Ihren IAM-Benutzereinstellungen.
Fakten und Zahlen
Abschnitt betitelt „Fakten und Zahlen“Storage-Typen
Abschnitt betitelt „Storage-Typen“Block-Storage
Abschnitt betitelt „Block-Storage“| Eigenschaft | rbd_fast | LUKS | SSD |
|---|---|---|---|
| Alternative Namen | cinder | Ephemeral SSD, NVMe | |
| Durchschnittliche IOPS | 3000 | 3000 | 5000 |
| Burst-IOPS | 10000 | 10000 | 20000 |
| Durchschnittlicher Durchsatz | 250 MB/s | 250 MB/s | 500 MB/s |
| Burst-Durchsatz | 500 MB/s | 500 MB/s | 1000 MB/s |
| Typ | Block-Storage | Block-Storage | Block-Storage |
| Provisionierung | Root-Volume, angehängtes Volume, k8s StorageClass | Root-Volume, angehängtes Volume, k8s StorageClass | Root-Volume |
| Zugriffsmuster | ReadWriteOnce (RWO) | ReadWriteOnce (RWO) | ReadWriteOnce (RWO) |
| Verfügbarkeit | Netzwerkgebunden: innerhalb einer einzelnen Zone | Netzwerkgebunden: innerhalb einer einzelnen Zone | Lokaler Storage: innerhalb desselben physischen Hosts |
| Redundanz | Zonenintern | Zonenintern | Gleicher Host |
| Verschlüsselung | Nein | Standardmäßig, starke Verschlüsselung | Nein |
| Zugriffskontrolle | OpenStack-/Kubernetes-Rollen | OpenStack-/Kubernetes-Rollen | OpenStack-/Kubernetes-Rollen |
| Backup | Vom Kunden verwaltet | Vom Kunden verwaltet | Vom Kunden verwaltet |
| Beschreibung | Unser Standard-Storage. Ceph-RBD-basiert und netzwerkgebunden. Bei ausreichender Abrufgröße können wir mehr als 15000 IOPS bereitstellen, bitte kontaktieren Sie uns. | Wie rbd_fast, jedoch mit zusätzlicher automatisierter Verschlüsselung. | Lokaler SSD-/NVMe-basierter Storage, nur als Root-Storage verfügbar. Bitte beachten Sie die Hinweise unten, bevor Sie Instanzen mit diesem Storage-Typ erstellen. |
Neben Block-Storage bieten wir auch S3 Object Storage an, dokumentiert auf einer eigenen Seite.
Instanz-Flavors
Abschnitt betitelt „Instanz-Flavors“Wir folgen dem Sovereign Cloud Stack Naming Standard.
Netzwerkgebundene Storage-Flavors
Abschnitt betitelt „Netzwerkgebundene Storage-Flavors“Diese Flavors mit angehängtem Storage sind die empfohlenen Flavors für allgemeine Zwecke. Wir empfehlen die Verwendung von diskless (disk=0) Flavors, da diskful Flavors ihr Root-Volume nicht nachträglich in der Größe ändern können:
| Flavor | vCPU | Speicher (GiB) | Disk (GiB) | Disk-Typ | Durchschnitts-bandbreite (Gbit/s) | Spitzen-bandbreite (Gbit/s) |
|---|---|---|---|---|---|---|
| SCS-1V-2 | 1 | 2 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-1V-2-5 | 1 | 2 | 5 | rbd_fast | 0,512 | 1,024 |
| SCS-1V-4 | 1 | 4 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-1V-4-10 | 1 | 4 | 10 | rbd_fast | 0,512 | 1,024 |
| SCS-1V-8 | 1 | 8 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-1V-8-20 | 1 | 8 | 20 | rbd_fast | 0,512 | 1,024 |
| SCS-1V-16 | 1 | 16 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-1V-16-50 | 1 | 16 | 50 | rbd_fast | 0,512 | 1,024 |
| SCS-2V-4 | 2 | 4 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-2V-4-10 | 2 | 4 | 10 | rbd_fast | 0,512 | 1,024 |
| SCS-2V-8 | 2 | 8 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-2V-8-20 | 2 | 8 | 20 | rbd_fast | 0,512 | 1,024 |
| SCS-2V-16 | 2 | 16 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-2V-16-50 | 2 | 16 | 50 | rbd_fast | 0,512 | 1,024 |
| SCS-2V-32 | 2 | 32 | 0 | LUKS / rbd_fast | 0,512 | 1,024 |
| SCS-2V-32-100 | 2 | 32 | 100 | rbd_fast | 0,512 | 1,024 |
| SCS-4V-8 | 4 | 8 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-4V-8-20 | 4 | 8 | 20 | rbd_fast | 1,25 | 2,5 |
| SCS-4V-16 | 4 | 16 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-4V-16-50 | 4 | 16 | 50 | rbd_fast | 1,25 | 2,5 |
| SCS-4V-32 | 4 | 32 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-4V-32-100 | 4 | 32 | 100 | rbd_fast | 1,25 | 2,5 |
| SCS-4V-64 | 4 | 64 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-4V-64-200 | 4 | 64 | 200 | rbd_fast | 1,25 | 2,5 |
| SCS-8V-16 | 8 | 16 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-8V-16-50 | 8 | 16 | 50 | rbd_fast | 1,25 | 2,5 |
| SCS-8V-32 | 8 | 32 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-8V-32-100 | 8 | 32 | 100 | rbd_fast | 1,25 | 2,5 |
| SCS-8V-64 | 8 | 64 | 0 | LUKS / rbd_fast | 1,25 | 2,5 |
| SCS-8V-64-200 | 8 | 64 | 200 | rbd_fast | 1,25 | 2,5 |
| SCS-16V-32 | 16 | 32 | 0 | LUKS / rbd_fast | 2,5 | 5 |
| SCS-16V-32-100 | 16 | 32 | 100 | rbd_fast | 2,5 | 5 |
| SCS-16V-64 | 16 | 64 | 0 | LUKS / rbd_fast | 2,5 | 5 |
| SCS-16V-64-200 | 16 | 64 | 200 | rbd_fast | 2,5 | 5 |
| SCS-16V-128 | 16 | 128 | 0 | LUKS / rbd_fast | 2,5 | 5 |
| SCS-16V-128-500 | 16 | 128 | 500 | rbd_fast | 2,5 | 5 |
| SCS-32V-64 | 32 | 64 | 0 | LUKS / rbd_fast | 2,5 | 5 |
| SCS-32V-64-200 | 32 | 64 | 200 | rbd_fast | 2,5 | 5 |
| SCS-32V-128 | 32 | 128 | 0 | LUKS / rbd_fast | 2,5 | 5 |
| SCS-32V-128-500 | 32 | 128 | 500 | rbd_fast | 2,5 | 5 |
| SCS-32V-256 | 32 | 256 | 0 | LUKS / rbd_fast | 5 | 10 |
| SCS-32V-256-1000 | 32 | 256 | 1000 | rbd_fast | 5 | 10 |
| SCS-64V-128 | 64 | 128 | 0 | LUKS / rbd_fast | 5 | 10 |
| SCS-64V-128-500 | 64 | 128 | 500 | rbd_fast | 5 | 10 |
| SCS-64V-256 | 64 | 256 | 0 | LUKS / rbd_fast | 5 | 10 |
| SCS-64V-256-1000 | 64 | 256 | 1000 | rbd_fast | 5 | 10 |
Ephemeral-SSD-Flavors
Abschnitt betitelt „Ephemeral-SSD-Flavors“Diese Flavors nutzen SSDs, die direkt in den VM-Hosts verbaut sind.
| Flavor | vCPU | Speicher (GiB) | Disk (GiB) | Disk-Typ | Durchschnitts-bandbreite (Gbit/s) | Spitzen-bandbreite (Gbit/s) |
|---|---|---|---|---|---|---|
| SCS-1V-8-20s | 1 | 8 | 20 | ssd | 1,25 | 2,5 |
| SCS-2V-4-20s | 2 | 4 | 20 | ssd | 1,25 | 2,5 |
| SCS-2V-8-20s | 2 | 8 | 20 | ssd | 1,25 | 2,5 |
| SCS-2V-16-50s | 2 | 16 | 50 | ssd | 1,25 | 2,5 |
| SCS-4V-16-50s | 4 | 16 | 50 | ssd | 1,25 | 2,5 |
| SCS-4V-16-100s | 4 | 16 | 100 | ssd | 1,25 | 2,5 |
| SCS-4V-32-100s | 4 | 32 | 100 | ssd | 2,5 | 5 |
| SCS-4V-64-200s | 4 | 64 | 200 | ssd | 2,5 | 5 |
| SCS-8V-32-100s | 8 | 32 | 100 | ssd | 2,5 | 5 |
| SCS-8V-64-200s | 8 | 64 | 200 | ssd | 2,5 | 5 |
| SCS-16V-64-200s | 16 | 64 | 200 | ssd | 2,5 | 5 |
| SCS-16V-128-500s | 16 | 128 | 500 | ssd | 2,5 | 5 |
| SCS-32V-128-500s | 32 | 128 | 500 | ssd | 5 | 10 |
| SCS-32V-256-1000s | 32 | 256 | 1000 | ssd | 5 | 10 |
| SCS-64V-256-1000s | 64 | 256 | 1000 | ssd | 5 | 10 |
Budget-optimiert
Abschnitt betitelt „Budget-optimiert“Diese Instanzen werden zu einem niedrigeren Preis angeboten und sollten nur für unkritische Workloads in Betracht gezogen werden.
| Flavor | vCPU | Speicher (GiB) | Disk (GiB) | Disk-Typ | Durchschnitts-bandbreite (Gbit/s) | Spitzen-bandbreite (Gbit/s) |
|---|---|---|---|---|---|---|
| SCS-1L-1 | 1 | 1 | 0 | LUKS / rbd_fast | 0,512 | 1 |
| SCS-1L-1-5 | 1 | 1 | 5 | rbd_fast | 0,512 | 1 |
Standard-Betriebssystem-Images
Abschnitt betitelt „Standard-Betriebssystem-Images“Jede dieser Betriebssystem-Varianten wird aktuell gehalten und bis zum Ende ihres Sicherheits-Supports gepflegt:
- AlmaLinux
- Debian
- Fedora
- Rocky Linux
- Ubuntu LTS
- Ubuntu Minimal LTS
Standard-Quotas
Abschnitt betitelt „Standard-Quotas“Pro Projekt gelten folgende Standard-Quotas. Bei Bedarf können Sie eine Erhöhung über Ihre technische Ansprechperson anfragen:
- Instanzen: 10
- Cores: 20
- RAM: 51200 MiB
- Volumes: 200
- Volume-Gigabytes: 1000
- Snapshots: 10
- Backups: 10
- Backup-Gigabytes: 1000
- Floating IPs: 3
- Netzwerke: 100
- Subnets: 100
- Router: 10
- Ports: 500
- Security Groups: 10
- Security-Group-Regeln: 100
- RBAC-Policies: 10
- Key-Pairs: 100
- Server-Groups: 10
- Server-Group-Mitglieder: 10
- Groups: 10
Pro Volume-Typ (rbd_fast, LUKS) sind Volumes, Gigabytes und Snapshots unbegrenzt (-1). Die maximale Größe eines einzelnen Volumes ist nicht beschränkt (-1).
Cloud-Punkte
Abschnitt betitelt „Cloud-Punkte“Die Cloud-Punkte je Ressource und einen interaktiven Verbrauchsrechner finden Sie im Cloud-Punkte-Rechner.
Anwendungsbeispiele
Abschnitt betitelt „Anwendungsbeispiele“Dieser Abschnitt sammelt Anwendungsbeispiele, die als Inspiration für die Umsetzung komplexerer Setups dienen können. Sie sind als Leitfaden gedacht und beleuchten fortgeschrittenere Themen nur ansatzweise, gehen Sie daher bei der Umsetzung ähnlicher Setups mit Vorsicht vor. Wir setzen voraus, dass Sie bereits wissen, wie die Tools zu konfigurieren sind, oder dass Sie der offiziellen Dokumentation folgen.
OPNsense-VPN-Gateway-VM
Abschnitt betitelt „OPNsense-VPN-Gateway-VM“Dieses Beispiel zeigt, wie eine OPNsense-VM in der nSC als VPN-Gateway zwischen Ihren On-Premises-/internen Netzwerken und dem nSC-WAN-Netzwerk mittels IPSec betrieben wird (die IPSec-Konfiguration selbst ist hier nicht Thema). Die OPNsense-Firewall routet den Traffic zwischen zwei internen Netzwerken in der nSC und dem WAN-Netzwerk.
Netzwerk-Setup
Abschnitt betitelt „Netzwerk-Setup“Erstellen Sie folgende Netzwerke in OpenStack:
- WAN-Netzwerk
opn-wan- CIDR:
192.168.100.0/24 - Gateway:
192.168.100.1
- CIDR:
- Internes Netzwerk
internal1- CIDR:
192.168.101.0/24 - Option: “Disable Gateway”
- CIDR:
- Internes Netzwerk
internal2- CIDR:
192.168.102.0/24 - Option: “Disable Gateway”
- CIDR:
Erstellen Sie anschließend einen Router:
- Erstellen Sie einen OpenStack-Router, der:
externalals externes Gateway-Netzwerk verwendet.- Ein Interface in
opn-wanmit der Router-IP192.168.100.1besitzt.
- Dieser Router stellt die Konnektivität von
opn-wanzum Internet über dasexternal-Netzwerk bereit.
OPNsense-Deployment
Abschnitt betitelt „OPNsense-Deployment“- Laden Sie die OPNsense-ISO (
.iso.bz2) von der offiziellen Projektseite herunter und entpacken Sie sie, sodass Sie eine.iso-Datei erhalten, zum BeispielOPNsense-26.1-dvd-amd64.iso. - Laden Sie die ISO als Image in OpenStack hoch:
openstack image create --disk-format iso --file OPNsense-26.1-dvd-amd64.iso --property hw_rescue_device=disk --property hw_rescue_bus=virtio OPNsense
- Erstellen Sie eine VM mit diesem OPNsense-Image.
- Starten Sie die VM. Nach dem ersten Start hängen Sie die Netzwerke wie unten beschrieben an.
Netzwerkschnittstellen
Abschnitt betitelt „Netzwerkschnittstellen“Hängen Sie die Netzwerke wie folgt an die OPNsense-VM an:
WAN:
- Hängen Sie die VM an das Netzwerk
opn-wanan. - Weisen Sie dem Port in
opn-waneine Floating IP zu, damit die OPNsense-GUI aus dem Internet erreichbar ist. - Deaktivieren Sie in den Port-Einstellungen der VM für den
opn-wan-Port „Port Security”.- Warnung: Das Deaktivieren von Port Security schaltet die Security Groups für diesen Port ab. Sämtliche Filterung für diese Schnittstelle muss von OPNsense selbst übernommen werden.
Interne Netzwerke:
- Hängen Sie die VM an
internal1an. Diese Schnittstelle erscheint alsvtnet1. Deaktivieren Sie „Port Security” für diesen Port. - Hängen Sie die VM an
internal2an. Diese Schnittstelle erscheint alsvtnet2. Deaktivieren Sie „Port Security” auch für diesen Port.
Nach dem Anhängen der Netzwerke sollte die VM drei Schnittstellen haben (Reihenfolge kann variieren, die Namen beziehen sich auf VirtIO-Geräte):
vtnet0: WAN (opn-wan)vtnet1:internal1vtnet2:internal2
OPNsense-Konfiguration (Konsole)
Abschnitt betitelt „OPNsense-Konfiguration (Konsole)“Schnittstellen zuweisen:
- Wählen Sie “Assign Interfaces”. Sie sollten drei VirtIO-Schnittstellen sehen:
vtnet0,vtnet1,vtnet2(VirtIO Networking Adapter). - Zuweisung:
WAN→vtnet0,LAN→vtnet1,OPT1→vtnet2.
IP-Adressen der Schnittstellen festlegen:
- WAN: Verwenden Sie DHCP oder legen Sie eine statische IP fest:
192.168.100.2/24, Gateway192.168.100.1, Nameserver62.128.1.42und62.128.1.53. - LAN: IP
192.168.101.1/24(Gateway fürinternal1). - OPT1: IP
192.168.102.1/24(Gateway fürinternal2).
Nach diesem Schritt fungiert OPNsense als Standard-Gateway für die beiden internen Netzwerke.
Zugriff auf die OPNsense-GUI
Abschnitt betitelt „Zugriff auf die OPNsense-GUI“Sobald IPs und Routen konfiguriert sind, sollte die OPNsense-Web-GUI unter https://<floating-ip>/ erreichbar sein (die an den WAN-Schnittstellen-Port in opn-wan angehängte Floating IP). Das bedeutet, sie ist aus dem Internet erreichbar, sichern Sie sie daher entsprechend ab.
Sie können nun:
- Firewall-Regeln für WAN, LAN und OPT1 konfigurieren.
- IPSec-Tunnel zu Ihrem entfernten Standort konfigurieren, sodass Traffic von
internal1undinternal2über das VPN zu Ihrem On-Premises-Netzwerk geroutet wird.
