Aller au contenu principal
Version: 2.0.2

API Reference

API Reference – Machines Virtuelles

Cette référence décrit de manière exhaustive les APIs VMInstance et VMDisk d’Hikube : paramètres disponibles, exemples d’utilisation et bonnes pratiques recommandées.


VMInstance

Vue d’ensemble

L’API VMInstance permet de créer, configurer et gérer des machines virtuelles dans Hikube.

apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: example-vm
spec:
# Configuration détaillée ci-dessous

Spécification complète

Paramètres généraux

ParamètreTypeDescriptionDéfautRequis
externalbooleanActive l’exposition réseau externe de la VMfalse
externalMethodstringMéthode d’exposition (PortList, WholeIP)PortList
externalPorts[]intPorts exposés vers l’extérieur[]
runningbooleanÉtat souhaité de la VMtrue
instanceTypestringGabarit CPU / mémoire
instanceProfilestringProfil OS de la VM
disks[]stringListe des VMDisk attachés[]
sshKeys[]stringClés SSH publiques injectées[]
cloudInitstringConfiguration cloud-init (YAML)""
cloudInitSeedstringDonnées seed cloud-init""

Configuration réseau

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

Types d’instances

Série S – Standard (ratio 1:2)

Workloads généraux, CPU partagés et burstables.

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

Série U – Universal (ratio 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

Série M – Memory Optimized (ratio 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

Profils d’OS supportés

Les profils suivants sont disponibles pour configurer le système d'exploitation de la VM :

ProfilDescription
ubuntuUbuntu Server (recommandé)
centosCentOS Stream
debianDebian
fedoraFedora Server
windowsWindows Server

Configuration 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

Exemple complet 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

Vue d’ensemble

L’API VMDisk permet de gérer les disques virtuels associés aux VMs. Elle supporte plusieurs sources d’images : HTTP, disque vide et Golden Images.

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

Paramètres principaux

ParamètreTypeDescriptionDéfautRequis
sourceobjectSource de l’image disque{}
opticalbooleanDisque optique (ISO)false
storagestringTaille du disque
storageClassstringClasse de stockagereplicated

Sources d’images

Source HTTP / HTTPS

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

Disque vide

spec:
source: {}

Golden Images (Images préchargées Hikube)

Les Golden Images sont des images système maintenues et préchargées dans Hikube. Elles permettent un provisionnement rapide, standardisé et sans dépendance externe.

Convention de nommage

Les images suivent le format {os}-{version} (ex : ubuntu-2404, rocky-9). Spécifiez toujours la version pour garantir la compatibilité de vos workloads.

Utilisation

spec:
source:
image:
name: ubuntu-2404

Images disponibles

NomSystème d'exploitationTypeStockage 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
Images ISO

Les images de type ISO (Proxmox) sont des installeurs, pas des images cloud prêtes à l'emploi. Elles nécessitent une installation manuelle via la console VNC.


Exemples VMDisk

Disque système 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

Classes de stockage

ClasseDescriptionRéplication
localStockage local nœud
replicatedStockage répliqué

Méthodes d’exposition réseau

PortList

  • Firewall automatique
  • Ports explicitement autorisés
  • Recommandé en production

WholeIP

  • Tous les ports exposés
  • Aucun filtrage réseau
  • Usage développement uniquement
Sécurité

Avec WholeIP, la VM est entièrement exposée sur Internet. Un firewall OS est indispensable.


Bonnes pratiques

Sécurité

  • Clés SSH uniquement
  • Firewall OS actif

Stockage

  • replicated en production
  • Disques séparés système / données

Performance

  • Adapter le type d’instance au workload
  • Suivre l’utilisation réelle
Architecture recommandée

En production, utilisez au minimum 2 disques (système + données) en stockage répliqué.