Incus¶
Dans cet article :
- Incus. Fonctionnalités Clés
- Fonctionnalités de Déploiement
- Premiers Pas Après le Déploiement d'Incus
- Configuration Initiale de l'Infrastructure
- Création et Gestion des Conteneurs
- Gestion de la Configuration du Conteneur
- Travail avec les Snapshots et la Migration
- Gestion des Images
- Interaction Réseau
- Gestion du Stockage
- Configuration de NAT et Routage
- Commander un serveur avec Incus via l'API
Information :
Incus est un gestionnaire de conteneurs système et de machines virtuelles open-source. C'est une dérivation de LXD et fournit un outil simple mais puissant pour gérer des conteneurs Linux et des machines virtuelles sur une plateforme unique.
Incus. Fonctionnalités Clés¶
- Gestion des Conteneurs et VM : Incus permet d'exécuter des conteneurs système Linux et des machines virtuelles QEMU/KVM complètes à travers une seule interface.
- Isolation du Processus : les conteneurs fonctionnent dans un environnement isolé avec leurs propres systèmes de fichiers, interfaces réseau et processus.
- Capacités Réseau : support intégré pour divers types de réseaux - ponts, NAT, VLANs, réseaux en overlay pour les conteneurs.
- Gestion du Stockage : système flexible de pools de stockage supportant différents backends - dir, btrfs, ZFS, LVM.
- Snapshots et Migration : création de snapshots de l'état des conteneurs, migration en direct entre hôtes sans arrêter les services.
- Profils de Configuration : profils réutilisables pour le déploiement rapide de conteneurs avec des paramètres prédéfinis.
- Limitation des Ressources : contrôle précis du CPU, de la mémoire, des opérations d'E/S disque et de la bande passante réseau pour chaque conteneur.
- API REST : API HTTP complète pour l'automatisation et l'intégration avec des systèmes externes.
- Interface Web : panneau de gestion web intégré pour le contrôle visuel de l'infrastructure.
- Bibliothèque d'Images : accès à une vaste collection d'images prêtes à l'emploi de diverses distributions Linux.
- Clustering : possibilité de combiner plusieurs hôtes en un seul cluster pour la gestion distribuée.
Fonctionnalités de Déploiement¶
| ID | Système d'exploitation compatible | VM | BM | VGPU | GPU | Min CPU (Cœurs) | Min RAM (Go) | Min HDD/SSD (Go) | Actif |
|---|---|---|---|---|---|---|---|---|---|
| 234 | Debian 13 | + | + | + | + | 2 | 2 | 50 | COMMANDER |
Chemins et Fichiers Principaux d'Incus :
- Fichier de Configuration Principal :
/etc/default/incus - Répertoire des Données :
/var/lib/incus - Pools de Stockage :
/var/lib/incus/storage-pools/ - Conteneurs :
/var/lib/incus/containers/ - Images :
/var/lib/incus/images/ - Fichier de Journalisation :
/var/log/incus/incusd.log - Services Système :
/usr/lib/systemd/system/incus*.service - Configuration Sysctl :
/etc/sysctl.d/50-incus.conf - Configuration Utilisateur :
/root/.config/incus/
Remarque :
Sauf indication contraire, nous installons par défaut la dernière version du logiciel à partir du site des développeurs ou des dépôts de l'OS.
Premiers Pas Après le Déploiement d'Incus¶
Après le paiement, une notification par e-mail sera envoyée à l'adresse spécifiée lors de l'inscription indiquant que le serveur est prêt à fonctionner. Elle inclura l'adresse IP du VPS et les identifiants d'accès. Les clients de notre entreprise gèrent l'équipement via le panneau de gestion de serveur et l'API — Invapi.
Les données d'authentification peuvent être trouvées soit dans l'onglet Info >> Tags du panneau de gestion du serveur, soit dans l'e-mail envoyé :
- Lien pour Accéder à l'Interface Web Incus : dans l'étiquette webpanel (port 8443, HTTPS)
Important :
Pour accéder à l'interface web, vous devez utiliser HTTPS et accepter le certificat auto-signé dans votre navigateur.
Lors de la première connexion à l'interface web d'Incus, le navigateur avertira d'une connexion non sécurisée en raison du certificat auto-signé. Il est nécessaire d'accepter le certificat pour continuer :

Après avoir accepté le certificat, la page de connexion s'ouvrira. Cliquez sur le bouton Login with TLS pour démarrer le processus d'authentification :

Le système vous redirigera vers la page pour ajouter un certificat existant :

Sélectionnez l'onglet Trust token et suivez les instructions :
-
Dans le terminal du serveur, exécutez la commande pour générer un jeton :
-
Le système va générer un jeton qui doit être copié :

-
Collez le jeton obtenu dans le champ de texte correspondant sur la page d'authentification et cliquez sur
Import.
Après une authentification réussie, la page principale de l'interface web avec la liste des instances s'ouvrira.
Création d'un Nouveau Conteneur via l'Interface Web¶
Pour créer un nouveau conteneur, cliquez sur le bouton Create instance dans le coin supérieur droit de l'interface :

Un formulaire de création d'instance avec plusieurs sections de configuration s'ouvrira. Pour sélectionner une image de base, cliquez sur le bouton Browse images. Une fenêtre de sélection des images avec des filtres par distribution, version, variante, architecture et type s'ouvrira :

Les sections de configuration suivantes sont disponibles :
- Main configuration — paramètres de base du conteneur : nom, description, type d'instance (conteneur ou machine virtuelle), image de base et profils attribués ;
- Devices — gestion des appareils du conteneur :
- Disk — configuration de l'appareil disque et point de montage ;
- Network — configuration de l'interface réseau ;
- GPU — connexion d'accélérateurs graphiques ;
- Proxy — configuration de la redirection de port entre hôte et conteneur ;
- Other — types d'appareils supplémentaires ;
- Resource limits — limitation des ressources : processeur (CPU), RAM, opérations d'E/S disque ;
- Security policies — politiques de sécurité : configuration de l'isolation, privilèges et profils de sécurité (AppArmor, SELinux) ;
- Snapshots — gestion des snapshots de l'état du conteneur pour sauvegarde et restauration ;
- Migration — paramètres de migration de conteneur entre hôtes ;
- Boot — paramètres de démarrage : ordre des périphériques de démarrage, démarrage automatique au démarrage du système ;
- Cloud init — configuration de l'initialisation automatique du conteneur via cloud-init (utilisateurs, réseau, paquets, scripts).
Sélectionnez l'image souhaitée en cliquant sur le bouton Select à côté :

Après avoir sélectionné une image, remplissez les paramètres de base :

- Instance name — nom du conteneur ;
- Description — description (optionnel) ;
- Instance type — type d'instance (Container ou Virtual Machine) ;
- Profiles — profils de configuration.
Pour démarrer le conteneur immédiatement après la création, cliquez sur Create and start. Pour créer sans démarrer, utilisez le bouton Create.
Surveillance du Statut des Conteneurs¶
Pendant le déploiement du conteneur, le progrès de téléchargement de l'image est affiché. Le statut "Setting up" avec indication du progrès de téléchargement montre la progression actuelle de création de l'instance. Après installation terminée, le statut changera en "Running" avec un indicateur vert :

Gestion du Service¶
Vérification du Statut :
Redémarrage du Service :
Arrêt du Service :
Démarrage du Service :
Affichage des Journaux :
Configuration Initiale de l'Infrastructure¶
Après le déploiement du serveur, il est recommandé d'effectuer la configuration initiale de l'infrastructure Incus.
Création d'un Pool de Stockage¶
Un pool de stockage définit où les données des conteneurs seront stockées :
Vérification des pools de stockage créés :
Pour afficher des informations détaillées sur un pool :
Configuration Réseau¶
Création d'un pont NAT pour les conteneurs avec assignation automatique d'adresse IPv4 :
Vérification des paramètres réseau :
Affichage de la configuration du réseau :
Configuration du Profil par Défaut¶
Le profil default définit la configuration de base pour les nouveaux conteneurs. Ajout d'un disque racine au profil :
Ajout d'une interface réseau au profil :
Vérification de la configuration du profil :
Création et Gestion des Conteneurs¶
Création d'un Conteneur¶
Exemple de création d'un conteneur Debian 12 avec des limites de ressources :
Paramètres de la commande :
images:debian/12- image du dépôt publicdeb12- nom du conteneur--profile default- utilisation du profil par défaut-c limits.cpu=2- limitation à 2 cœurs CPU-c limits.memory=2GiB- limitation de mémoire de 2 Go
Affichage des Conteneurs¶
Liste de toutes les instances :
La sortie contiendra des informations sur le statut, les adresses IP et le type de chaque conteneur.
Gestion de l'État des Conteneurs¶
Démarrage d'un conteneur :
Arrêt d'un conteneur :
Redémarrage d'un conteneur :
Suppression d'un conteneur (nécessite un arrêt) :
Suppression forcée d'un conteneur en cours d'exécution :
Accès au Conteneur¶
Connexion via bash :
Connexion à la console TTY :
Pour quitter la console, utilisez la combinaison de touches Ctrl+a q.
Redirection de Ports¶
Pour accéder aux services à l'intérieur d'un conteneur depuis un réseau externe, le mécanisme de redirection de ports via un dispositif proxy est utilisé :
Cette commande redirige le port 8080 de l'hôte vers le port 80 du conteneur.
Exemple pour plusieurs ports :
HTTP :
HTTPS :
SSH :
Gestion de la Configuration du Conteneur¶
Affichage de la Configuration¶
Affichage de la configuration complète et développée d'un conteneur :
Affichage de la configuration de base sans profils :
Modification des Paramètres¶
Définition de paramètres de configuration :
Limitation CPU :
Limitation Mémoire :
Limitation E/S Disque :
Démarrage Automatique du Conteneur :
Ajout d'Appareils¶
Syntaxe générale d'ajout d'appareils :
Exemples :
Ajout d'un disque supplémentaire :
Ajout d'une interface réseau supplémentaire :
Montage d'un répertoire hôte dans un conteneur :
Suppression d'un appareil :
Travail avec les Snapshots et la Migration¶
Création de Snapshots¶
Les snapshots permettent de sauvegarder l'état du conteneur pour une restauration ultérieure :
Exemple :
Liste des snapshots du conteneur :
Restauration depuis un Snapshot¶
Exemple :
Suppression d'un snapshot :
Renommage et Copie¶
Renommage d'un conteneur :
Copie d'un conteneur sur le même hôte :
Copie d'un conteneur vers un autre hôte Incus :
Pour travailler avec des hôtes distants, il est nécessaire d'ajouter au préalable un remote :
Gestion des Images¶
Affichage des Images¶
Liste des images locales :
Liste des images dans un dépôt distant :
Recherche d'une distribution spécifique :
Copie des Images¶
Copie d'une image depuis un dépôt public avec mise à jour automatique :
Copie d'une image avec un alias :
Création d'une Image depuis un Conteneur¶
Suppression des Images¶
ou par alias :
Interaction Réseau¶
Gestion des Réseaux¶
Liste des réseaux :
Affichage de la configuration du réseau :
Création d'un nouveau réseau :
# Création d'un réseau bridge
incus network create mybr0 \
ipv4.address=10.10.10.1/24 \
ipv4.nat=true \
ipv6.address=none
# Création d'un réseau macvlan
incus network create mymacvlan \
type=macvlan \
parent=eth0
Édition d'un réseau :
Suppression d'un réseau :
Règles de Redirection Réseau¶
Création d'une règle de redirection pour la redirection de ports :
Gestion du Stockage¶
Gestion des Pools de Stockage¶
Liste des pools :
Affichage des informations sur un pool :
Création d'un pool de stockage :
Pool basé sur Dir :
Pool Btrfs :
Pool ZFS :
Édition d'un pool :
Suppression d'un pool :
Gestion des Volumes¶
Création d'un volume utilisateur :
Liste des volumes dans un pool :
Attachement d'un volume à un conteneur :
incus config device add <container> <device-name> disk \
pool=<pool-name> \
source=<volume-name> \
path=/mount/path
Copie d'un volume :
Suppression d'un volume :
Configuration de NAT et Routage¶
Dans certains cas, une configuration manuelle de NAT et de règles de routage peut être nécessaire pour assurer l'accès réseau des conteneurs au réseau externe.
Basculement vers nftables¶
Activation du Forwarding IP¶
Pour une application permanente, ajoutez dans /etc/sysctl.conf :
Redémarrage d'Incus après les modifications :
Configuration de la Table NAT¶
Création de la table NAT et de la chaîne POSTROUTING :
Ajout de la règle de masquerade pour le sous-réseau des conteneurs :
Remarque :
Remplacez ens1 par le nom de votre interface réseau externe et 10.1.4.0/24 par le sous-réseau de votre pont Incus.
Configuration de la Chaîne FORWARD¶
Création de la table filter et de la chaîne FORWARD :
Ajout de règles pour autoriser le trafic :
Autoriser le trafic depuis les conteneurs vers l'extérieur :
Autoriser le trafic established/related de retour :
nft insert rule ip filter FORWARD iifname "ens1" oifname "incusbr0" ct state established,related accept
Vérification des Règles nftables¶
Affichage de toutes les règles :
Sauvegarde des règles (pour Debian/Ubuntu) :
Installation du paquet pour sauvegarder les règles :
Sauvegarde des règles actuelles :
Activation du chargement automatique :
Remarque :
Des informations détaillées sur toutes les fonctionnalités d'Incus se trouvent dans la documentation officielle des développeurs.
Commander un serveur avec Incus via l'API¶
Pour installer ce logiciel en utilisant l'API, suivez ces instructions.
Une partie du contenu de cette page a été créée ou traduite à l'aide de l'IA.