Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Riferimento API

Riferimento API – Macchine Virtuali

Questo riferimento descrive in modo esaustivo le API VMInstance e VMDisk di Hikube: parametri disponibili, esempi di utilizzo e buone pratiche raccomandate.


VMInstance

Panoramica

L'API VMInstance permette di creare, configurare e gestire macchine virtuali in Hikube.

apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: example-vm
spec:
# Configurazione dettagliata qui sotto

Specifica completa

Parametri generali

ParametroTipoDescrizioneDefaultRichiesto
externalbooleanAttiva l'esposizione di rete esterna della VMfalse
externalMethodstringMetodo di esposizione (PortList, WholeIP)PortList
externalPorts[]intPorte esposte verso l'esterno[]
runningbooleanStato desiderato della VMtrue
instanceTypestringModello CPU / memoria
instanceProfilestringProfilo OS della VM
disks[]stringLista dei VMDisk collegati[]
sshKeys[]stringChiavi SSH pubbliche iniettate[]
cloudInitstringConfigurazione cloud-init (YAML)""
cloudInitSeedstringDati seed cloud-init""

Configurazione di rete

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

Tipi di istanze

Serie S – Standard (rapporto 1:2)

Workload generali, CPU condivisi e burstable.

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 (rapporto 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 (rapporto 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

Profili OS supportati

I profili seguenti sono disponibili per configurare il sistema operativo della VM:

ProfiloDescrizione
ubuntuUbuntu Server (raccomandato)
centosCentOS Stream
debianDebian
fedoraFedora Server
windowsWindows Server

Configurazione SSH

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

Esempio completo VMInstance

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

Panoramica

L'API VMDisk permette di gestire i dischi virtuali associati alle VM. Supporta diverse sorgenti di immagini: HTTP, disco vuoto e Golden Image.

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

Parametri principali

ParametroTipoDescrizioneDefaultRichiesto
sourceobjectSorgente dell'immagine disco{}
opticalbooleanDisco ottico (ISO)false
storagestringDimensione del disco
storageClassstringClasse di storagereplicated

Sorgenti di immagini

Sorgente HTTP / HTTPS

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

Disco vuoto

spec:
source: {}

Golden Image (Immagini precaricate Hikube)

Le Golden Image sono immagini di sistema mantenute e precaricate in Hikube. Permettono un provisioning rapido, standardizzato e senza dipendenze esterne.

Convenzione di denominazione

Le immagini seguono il formato {os}-{version} (es.: ubuntu-2404, rocky-9). Specificate sempre la versione per garantire la compatibilità dei vostri workload.

Utilizzo

spec:
source:
image:
name: ubuntu-2404

Immagini disponibili

NomeSistema operativoTipoStorage min.
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
Immagini ISO

Le immagini di tipo ISO (Proxmox) sono installer, non immagini cloud pronte all'uso. Richiedono un'installazione manuale tramite la console VNC.


Esempi VMDisk

Disco di sistema tramite 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

Classi di storage

ClasseDescrizioneReplica
localStorage locale nodo
replicatedStorage replicato

Metodi di esposizione di rete

PortList

  • Firewall automatico
  • Porte esplicitamente autorizzate
  • Raccomandato in produzione

WholeIP

  • Tutte le porte esposte
  • Nessun filtraggio di rete
  • Solo per sviluppo
Sicurezza

Con WholeIP, la VM è interamente esposta su Internet. Un firewall OS è indispensabile.


Buone pratiche

Sicurezza

  • Solo chiavi SSH
  • Firewall OS attivo

Archiviazione

  • replicated in produzione
  • Dischi separati sistema / dati

Prestazioni

  • Adattare il tipo di istanza al workload
  • Monitorare l'utilizzo reale
Architettura raccomandata

In produzione, utilizzate come minimo 2 dischi (sistema + dati) con storage replicato.