Compute
Compute-Services stellen virtuelle Maschinen (Instanzen) bereit, die Ihre Workloads auf gemeinsamer physischer Infrastruktur ausführen. Jede VM wird durch einen Flavor (vCPU, RAM, Disk) definiert und bootet von einem Image (Betriebssystem-Vorlage).
Was ist eine virtuelle Maschine?
Eine virtuelle Maschine (VM) ist ein Gast-Betriebssystem, das auf der Cloud-Infrastruktur läuft. Sie wird aus einem Image und einem Flavor innerhalb eines Projekts erstellt. Die VM läuft auf einem physischen Hypervisor-Host und ist von anderen Mandanten isoliert.
OpenStack bietet zwei Boot-Modi:
- Ephemeral Boot — die VM bootet direkt von der im Flavor integrierten Root-Disk. Die Disk existiert nur während der Lebensdauer der Instanz und wird beim Löschen der Instanz gelöscht.
- Volume Boot — die VM bootet von einem persistenten Volume, das aus einem Image erstellt wurde. Das Volume überdauert das Löschen der Instanz, kann vergrössert und an eine neue Instanz angehängt werden.
Tip
Volume Boot (Zero-Disk-Flavors) wird empfohlen für die meisten Workloads. Es bietet Flexibilität für Resize, Snapshots und Backups.
In diesem Abschnitt
- Images — verfügbare Images, Boot-Source-Optionen, Images aus Snapshots erstellen, Custom Images.
- SSH-Key-Paare — SSH-Keys erstellen oder importieren für den VM-Zugriff.
- Launch Instance — Schritt-für-Schritt Horizon-Wizard zum Deployen einer VM.
- Floating IP — öffentliche IP zuweisen, um eine VM vom Internet aus erreichbar zu machen.
- Server Groups — Affinity- und Anti-Affinity-Policies für VM-Platzierung.
- CLI Deployment — komplette VM (Netzwerk + Instanz + Floating IP) über die Kommandozeile deployen.
Quick Examples
Eine VM kann mit dem OpenStack CLI (OSC), Ansible oder Terraform deployet werden. Für eine vollständige Anleitung siehe CLI Deployment.
Voraussetzungen: Das CLI-Tool muss installiert und konfiguriert sein (siehe Tools), und Sie benötigen Application Credentials (cloud.yaml).
OpenStack CLI
openstack server create vm-u2404-az2 \
--image "Ubuntu 24.04" \
--flavor g1.2c4m \
--key-name foo-key \
--network foo-net \
--security-group default \
--availability-zone ch-zh1-az2
Ansible
- os_server:
name: "foo-u2404-az2"
image: "Ubuntu 24.04"
key_name: "foo-key"
flavor: "g1.2c4m"
network: "foo-net"
security_groups: "default"
availability_zone: "ch-zh1-az2"
Terraform
resource "openstack_compute_instance_v2" "instance_1" {
name = "vm-u2404-az2"
image_name = "Ubuntu 24.04"
flavor_name = "g1.2c4m"
key_pair = "foo-key"
security_groups = ["default"]
availability_zone = "ch-zh1-az2"
network {
name = "foo-net"
}
}
Volume-Deployment-Beispiele finden Sie unter Storage — Volume-Operationen.