Creare la vostra prima Macchina Virtuale
Questa guida vi accompagna nella creazione della vostra prima macchina virtuale Hikube in 5 minuti cronometro!
Obiettivoโ
Alla fine di questa guida, avrete:
- Una macchina virtuale Ubuntu funzionante
- Accesso SSH configurato
- Connettivitร di rete operativa
- Storage persistente collegato
Prerequisitiโ
Prima di iniziare, assicuratevi di avere:
- kubectl configurato con il vostro kubeconfig Hikube
- Diritti amministratore sul vostro tenant
๐ Passo 1: Creare il Disco VM (2 minuti)โ
Preparate il file manifestโ
Create un file vm-disk.yaml con un'immagine Ubuntu Cloud:
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: disk-example
spec:
source:
http:
url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
optical: false
storage: 20Gi
storageClass: "replicated"
Distribuite il discoโ
# Creare il disco VM
kubectl apply -f vm-disk.yaml
# Verificare lo stato (puรฒ richiedere 1-2 minuti)
kubectl get vmdisk disk-example -w
Risultato atteso:
NAME STATUS SIZE STORAGECLASS AGE
disk-example Ready 20Gi replicated 90s
Passo 2: Creare la Macchina Virtuale (2 minuti)โ
Generate la vostra chiave SSHโ
Se non avete ancora una chiave SSH:
# Generare una chiave SSH Ed25519 (moderna e sicura)
ssh-keygen -t ed25519 -f ~/.ssh/hikube-vm
# Visualizzare la chiave pubblica
cat ~/.ssh/hikube-vm.pub
Preparate il manifest VMโ
Create un file vm-instance.yaml:
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: vm-example
spec:
external: true
externalMethod: PortList
externalPorts:
- 22
running: true
instanceType: u1.xlarge
instanceProfile: "ubuntu"
disks:
- name: disk-example #Specificare il nome del vostro disco
resources:
cpu: ""
memory: ""
sshKeys:
- vostra-chiave-pubblica-qui
cloudInit: |
#cloud-config
cloudInitSeed: ""
Sostituite vostra-chiave-pubblica-qui con la vostra vera chiave SSH pubblica!
Distribuite la VMโ
# Creare la macchina virtuale
kubectl apply -f vm-instance.yaml
# Seguire l'avvio
kubectl get vminstance vm-example -w
Comprendere i Metodi di Esposizioneโ
PortList vs WholeIP: Quale differenza?โ
Hikube propone due metodi di esposizione esterna, ciascuno con le sue specificitร :
PortList (Raccomandato)โ
- Firewall controllato: Solo le porte specificate in
externalPortssono accessibili - Sicurezza rafforzata: Protezione automatica contro gli accessi non autorizzati
- Uso: Produzione, ambienti sicuri
- Configurazione:
externalMethod: PortList+externalPorts: [22, 80, 443]
WholeIPโ
- Accesso completo: Tutte le porte della VM sono direttamente accessibili
- Nessun firewall: Nessuna protezione a livello di rete configurata tramite il servizio
- Uso: Sviluppo, accesso amministrativo completo
- Configurazione:
externalMethod: WholeIP(non รจ necessarioexternalPorts)
- Produzione/Sicuro โ
PortListcon porte specifiche - Sviluppo/Debug โ
WholeIPper un accesso completo
๐ Passo 3: Accedere alla vostra VM (1 minuto)โ
Installazione di virtctlโ
Se non avete ancora virtctl installato:
# Installazione di virtctl
export VERSION=$(curl https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)
wget https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-linux-amd64
chmod +x virtctl
sudo mv virtctl /usr/local/bin/
# Verificare l'installazione
virtctl version
Metodi di accessoโ
Opzione 1: SSH Direttoโ
# SSH tramite virtctl (con chiave personalizzata)
virtctl ssh -i ~/.ssh/hikube-vm ubuntu@vm-example
# o SSH tramite IP pubblico (con chiave personalizzata)
ssh -i ~/.ssh/hikube-vm ubuntu@public-ip
Opzione 2: Console Seriale (sempre disponibile)โ
# Accesso console diretto
virtctl console vm-example
Opzione 3: Interfaccia VNCโ
# Accesso grafico
virtctl vnc vm-example
๐ Congratulazioniโ
La vostra macchina virtuale Hikube รจ operativa!
Quello che avete realizzato:โ
- VM Ubuntu distribuita con 4 vCPU / 16 GB RAM
- Storage persistente di 20 GB replicato
- Accesso SSH sicuro configurato
- Connettivitร esterna attivata
- Infrastruttura resiliente con separazione compute/storage
Pulizia (Opzionale)โ
Se volete eliminare le risorse create:
# Eliminare la VM (attenzione!)
kubectl delete vminstance vm-example
# Eliminare il disco (attenzione!)
kubectl delete vmdisk disk-example
L'eliminazione delle VM e dei dischi รจ irreversibile. Assicuratevi di aver salvato tutti i dati importanti prima di procedere.
๐ฏ Prossimi Passiโ
๐ Configurazione Avanzata โ API Reference completa
๐ Architettura Tecnica โ Comprendere il funzionamento
๐ก Punti Chiave da Ricordare:
- I vostri dati sono sempre al sicuro grazie alla replica su 3 datacenter
- La vostra VM puรฒ essere rilocalizzata automaticamente in caso di guasto del nodo
- L'isolamento totale garantisce la sicurezza tra tenant