Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

FAQ — Machines virtuelles

Quelle est la différence entre PortList et WholeIP ?

CaractéristiquePortListWholeIP
FonctionnementSeuls les ports listés dans externalPorts sont exposésTous les ports de la VM sont exposés
SécuritéContrôle fin, surface d'attaque réduiteNécessite un firewall au niveau de l'OS
Cas d'usageProduction, services ciblésDéveloppement, tests rapides
attention

Avec WholeIP, vous devez impérativement configurer un firewall dans la VM (iptables, nftables, ufw) pour protéger les services non exposés.

vm-portlist.yaml
spec:
external: true
externalMethod: PortList
externalPorts:
- 22
- 443

Quelles images sont disponibles ?

Hikube propose des Golden Images pré-configurées :

Système d'exploitationVersions disponibles
Ubuntu22.04, 24.04
Debian11, 12, 13
CentOS Stream9, 10
Rocky Linux8, 9, 10
AlmaLinux8, 9, 10

Les images sont spécifiées dans le champ source.image.name de la ressource VMDisk, au format {os}-{version}. Par exemple : ubuntu-2404, debian-12, rocky-9.


Comment choisir mon instanceType ?

Les instances suivent trois gammes avec des ratios vCPU:RAM différents :

GammePréfixeRatioExemple d'usage
Standards11:2Serveurs web, applications légères
Universalu11:4Applications métier, bases de données
Memorym11:8Cache, traitements en mémoire

Les tailles disponibles vont de small à 8xlarge. Par exemple : u1.xlarge offre 4 vCPU et 16 Go de RAM.


Comment ajouter un disque supplémentaire ?

Créez d'abord une ressource VMDisk, puis référencez-la dans votre VMInstance :

data-disk.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: data-volume
spec:
size: 100Gi
storageClass: replicated
vm.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: my-vm
spec:
instanceType: u1.large
instanceProfile: ubuntu
disks:
- data-volume

Comment accéder à ma VM en SSH ?

  1. Injectez votre clé SSH publique dans le manifeste de la VM :

    vm-ssh.yaml
    spec:
    sshKeys:
    - "ssh-ed25519 AAAAC3... user@laptop"
  2. Exposez le port 22 via PortList :

    vm-ssh.yaml
    spec:
    external: true
    externalMethod: PortList
    externalPorts:
    - 22
  3. Récupérez l'adresse IP externe :

    kubectl get svc
  4. Connectez-vous :

    ssh user@<external-ip>
remarque

Le nom d'utilisateur par défaut dépend de l'image : ubuntu pour Ubuntu, debian pour Debian, cloud-user pour CentOS/Rocky/AlmaLinux.


Comment personnaliser la VM au démarrage ?

Utilisez le champ cloudInit pour injecter une configuration cloud-init au format YAML :

vm-cloudinit.yaml
spec:
cloudInit: |
#cloud-config
packages:
- nginx
- htop
users:
- name: admin
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-ed25519 AAAAC3... admin@company
runcmd:
- systemctl enable nginx
- systemctl start nginx

Cloud-init s'exécute au premier démarrage de la VM et permet d'installer des paquets, créer des utilisateurs, exécuter des commandes, etc.


Quelle est la différence entre instanceProfile et instanceType ?

ParamètreRôleExemples
instanceProfileCharge les drivers et kernels adaptés à l'OSubuntu, centos, windows.2k25.virtio
instanceTypeDéfinit la taille de la VM (CPU/RAM)s1.small, u1.large, m1.2xlarge

instanceProfile ne détermine pas l'image OS — celle-ci est définie dans la ressource VMDisk via source.image.name. Le profil sert à charger les drivers et kernels optimisés pour le système d'exploitation. C'est principalement utile pour Windows (drivers virtio). instanceType dimensionne les ressources CPU et mémoire allouées à la VM.