Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

API-Referenz

API-Referenz – Virtuelle Maschinen

Diese Referenz beschreibt umfassend die VMInstance- und VMDisk-APIs von Hikube: verfügbare Parameter, Verwendungsbeispiele und empfohlene Best Practices.


VMInstance

Übersicht

Die VMInstance-API ermöglicht das Erstellen, Konfigurieren und Verwalten von virtuellen Maschinen in Hikube.

apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: example-vm
spec:
# Detaillierte Konfiguration unten

Vollständige Spezifikation

Allgemeine Parameter

ParameterTypBeschreibungStandardErforderlich
externalbooleanAktiviert die externe Netzwerk-Exposition der VMfalse
externalMethodstringExpositionsmethode (PortList, WholeIP)PortList
externalPorts[]intExtern exponierte Ports[]
runningbooleanGewünschter Zustand der VMtrue
instanceTypestringCPU/Speicher-Vorlage
instanceProfilestringOS-Profil der VM
disks[]stringListe der angehängten VMDisk[]
sshKeys[]stringInjizierte öffentliche SSH-Schlüssel[]
cloudInitstringCloud-init-Konfiguration (YAML)""
cloudInitSeedstringCloud-init-Seed-Daten""

Netzwerkkonfiguration

spec:
external: true
externalMethod: PortList
externalPorts:
- 22
- 80
- 443

Instanztypen

Serie S – Standard (Verhältnis 1:2)

Allgemeine Workloads, geteilte und burstable CPUs.

instanceType: s1.small     # 1 vCPU, 2 GB RAM
instanceType: s1.medium # 2 vCPU, 4 GB RAM
instanceType: s1.large # 4 vCPU, 8 GB RAM
instanceType: s1.xlarge # 8 vCPU, 16 GB RAM
instanceType: s1.3large # 12 vCPU, 24 GB RAM
instanceType: s1.2xlarge # 16 vCPU, 32 GB RAM
instanceType: s1.3xlarge # 24 vCPU, 48 GB RAM
instanceType: s1.4xlarge # 32 vCPU, 64 GB RAM
instanceType: s1.8xlarge # 64 vCPU, 128 GB RAM

Serie U – Universal (Verhältnis 1:4)

instanceType: u1.medium    # 1 vCPU, 4 GB RAM
instanceType: u1.large # 2 vCPU, 8 GB RAM
instanceType: u1.xlarge # 4 vCPU, 16 GB RAM
instanceType: u1.2xlarge # 8 vCPU, 32 GB RAM
instanceType: u1.4xlarge # 16 vCPU, 64 GB RAM
instanceType: u1.8xlarge # 32 vCPU, 128 GB RAM

Serie M – Memory Optimized (Verhältnis 1:8)

instanceType: m1.large     # 2 vCPU, 16 GB RAM
instanceType: m1.xlarge # 4 vCPU, 32 GB RAM
instanceType: m1.2xlarge # 8 vCPU, 64 GB RAM
instanceType: m1.4xlarge # 16 vCPU, 128 GB RAM
instanceType: m1.8xlarge # 32 vCPU, 256 GB RAM

Unterstützte OS-Profile

Die folgenden Profile stehen zur Konfiguration des Betriebssystems der VM zur Verfügung:

ProfilBeschreibung
ubuntuUbuntu Server (empfohlen)
centosCentOS Stream
debianDebian
fedoraFedora Server
windowsWindows Server

SSH-Konfiguration

spec:
sshKeys:
- ssh-rsa AAAA... user@host
- ssh-ed25519 AAAA... user2@host

Cloud-init

spec:
cloudInit: |
#cloud-config
users:
- name: admin
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa AAAA...

packages:
- htop
- docker.io
- curl

Vollständiges VMInstance-Beispiel

production-vm.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: vm-example
spec:
external: true
externalMethod: PortList
externalPorts:
- 22
running: true
instanceType: u1.2xlarge
instanceProfile: ubuntu
disks:
- vm-system-disk
sshKeys:
- ssh-rsa AAAA...

VMDisk

Übersicht

Die VMDisk-API ermöglicht die Verwaltung virtueller Festplatten, die mit VMs verknüpft sind. Sie unterstützt mehrere Image-Quellen: HTTP, leere Festplatte und Golden Images.

apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: disk-example
spec:
source:
http:
url: https://...
optical: false
storage: 30Gi
storageClass: replicated

Hauptparameter

ParameterTypBeschreibungStandardErforderlich
sourceobjectQuelle des Festplatten-Images{}
opticalbooleanOptische Festplatte (ISO)false
storagestringFestplattengröße
storageClassstringSpeicherklassereplicated

Image-Quellen

HTTP/HTTPS-Quelle

spec:
source:
http:
url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

Leere Festplatte

spec:
source: {}

Golden Images (vorgeladene Hikube-Images)

Golden Images sind Systemimages, die in Hikube gepflegt und vorgeladen werden. Sie ermöglichen eine schnelle, standardisierte Bereitstellung ohne externe Abhängigkeiten.

Namenskonvention

Die Images folgen dem Format {os}-{version} (z.B.: ubuntu-2404, rocky-9). Geben Sie immer die Version an, um die Kompatibilität Ihrer Workloads zu gewährleisten.

Verwendung

spec:
source:
image:
name: ubuntu-2404

Verfügbare Images

NameBetriebssystemTypMin. Speicher
almalinux-8AlmaLinux 8Cloud11 Gi
almalinux-9AlmaLinux 9Cloud11 Gi
almalinux-10AlmaLinux 10Cloud11 Gi
rocky-8Rocky Linux 8Cloud11 Gi
rocky-9Rocky Linux 9Cloud11 Gi
rocky-10Rocky Linux 10Cloud11 Gi
debian-11Debian 11 (Bullseye)Cloud4 Gi
debian-12Debian 12 (Bookworm)Cloud4 Gi
debian-13Debian 13 (Trixie)Cloud4 Gi
ubuntu-2204Ubuntu 22.04 LTS (Jammy)Cloud4 Gi
ubuntu-2404Ubuntu 24.04 LTS (Noble)Cloud4 Gi
centos-stream-9CentOS Stream 9Cloud11 Gi
centos-stream-10CentOS Stream 10Cloud11 Gi
oracle-8Oracle Linux 8Cloud40 Gi
oracle-9Oracle Linux 9Cloud40 Gi
oracle-10Oracle Linux 10Cloud40 Gi
opensuse-156openSUSE Leap 15.6Cloud1 Gi
opensuse-160openSUSE Leap 16.0Cloud2 Gi
cloudlinux-8CloudLinux 8Cloud8 Gi
cloudlinux-9CloudLinux 9Cloud9 Gi
proxmox-8Proxmox VE 8ISO2 Gi
proxmox-9Proxmox VE 9ISO2 Gi
talos-112Talos Linux 1.12Cloud8 Gi
ISO-Images

Images vom Typ ISO (Proxmox) sind Installer, keine sofort einsatzbereiten Cloud-Images. Sie erfordern eine manuelle Installation über die VNC-Konsole.


VMDisk-Beispiele

Systemfestplatte via Golden Image

ubuntu-golden-disk.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: ubuntu-system
spec:
source:
image:
name: ubuntu-2404
optical: false
storage: 20Gi
storageClass: replicated

Speicherklassen

KlasseBeschreibungReplikation
localLokaler Knotenspeicher
replicatedReplizierter Speicher

Netzwerk-Expositionsmethoden

PortList

  • Automatische Firewall
  • Explizit autorisierte Ports
  • Empfohlen für Produktion

WholeIP

  • Alle Ports exponiert
  • Keine Netzwerkfilterung
  • Nur für Entwicklung
Sicherheit

Mit WholeIP ist die VM vollständig im Internet exponiert. Eine OS-Firewall ist unerlässlich.


Best Practices

Sicherheit

  • Nur SSH-Schlüssel
  • Aktive OS-Firewall

Speicher

  • replicated in der Produktion
  • Getrennte Festplatten für System / Daten

Leistung

  • Instanztyp an den Workload anpassen
  • Tatsächliche Nutzung überwachen
Empfohlene Architektur

Verwenden Sie in der Produktion mindestens 2 Festplatten (System + Daten) mit repliziertem Speicher.