Incus¶
Dans cet article
- Incus. Fonctionnalités clés
- Fonctionnalités de déploiement
- Prise en main après le déploiement d'Incus
- Configuration initiale de l'infrastructure
- Création et gestion des conteneurs
- Gestion de la configuration des conteneurs
- Travail avec les instantanés et la migration
- Gestion des images
- Interaction réseau
- Gestion du stockage
- Configuration du NAT et du routage
- Commande d'un serveur avec Incus via l'API
Information
Incus est un gestionnaire de conteneurs système et de machines virtuelles open-source. Il s'agit d'un fork de LXD et fournit un outil simple mais puissant pour gérer les conteneurs Linux et les machines virtuelles sur une plateforme unifiée.
Incus. Fonctionnalités clés¶
- Gestion des conteneurs et des VM : Incus permet d'exécuter des conteneurs système Linux et des machines virtuelles QEMU/KVM à part entière via une interface unique.
- Isolation des processus : Les conteneurs fonctionnent dans un environnement isolé avec leurs propres systèmes de fichiers, interfaces réseau et processus.
- Capacités réseau : Prise en charge intégrée de divers types de réseaux - ponts, NAT, VLANs, réseaux overlay pour les conteneurs.
- Gestion du stockage : Système flexible de pools de stockage prenant en charge différents backends - dir, btrfs, ZFS, LVM.
- Instantanés et migration : Création d'instantanés de l'état des conteneurs, migration en direct entre hôtes sans interruption des 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, de l'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 une gestion distribuée.
Fonctionnalités de déploiement¶
| ID | Nom du logiciel | Système d'exploitation compatible | VM | BM | VGPU | GPU | Min CPU (Cœurs) | Min RAM (GB) | Min HDD/SSD (GB) | Domaine personnalisé | Actif |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 234 | Linux Containers Incus | Debian 13 | + | + | + | + | 2 | 2 | 50 | Non | COMMANDER |
Chemins et fichiers principaux d'Incus :
- Fichier de configuration principal :
/etc/default/incus - Répertoire de données :
/var/lib/incus - Pools de stockage :
/var/lib/incus/storage-pools/ - Conteneurs :
/var/lib/incus/containers/ - Images :
/var/lib/incus/images/ - Fichier journal :
/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 de sortie du logiciel depuis le site du développeur ou les dépôts du système d'exploitation.
Prise en main 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 contiendra l'adresse IP du VPS et les identifiants d'accès. Les clients de notre entreprise gèrent les équipements via le panneau de gestion des serveurs et l'API — Invapi.
Les données d'authentification peuvent être trouvées soit dans l'onglet Configuration >> Tags du panneau de gestion des serveurs, soit dans l'e-mail envoyé :
- Lien d'accès à l'interface Web Incus : dans la balise 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 du premier accès à l'interface web Incus, le navigateur avertira d'une connexion non sécurisée en raison du certificat auto-signé. Vous devez 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 d'ajout d'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 générera 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 d'image 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 assignés ;
- Devices — gestion des périphériques du conteneur :
- Disk — configuration du périphérique de disque et du point de montage ;
- Network — configuration de l'interface réseau ;
- GPU — connexion d'accélérateurs graphiques ;
- Proxy — configuration de la redirection de ports entre l'hôte et le conteneur ;
- Other — types de périphériques supplémentaires ;
- Resource limits — limitation des ressources : processeur (CPU), RAM, opérations 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 instantanés de l'état du conteneur pour la sauvegarde et la récupération ;
- Migration — paramètres de migration des conteneurs 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 (facultatif) ;
- Instance type — type d'instance (Container ou Virtual Machine) ;
- Profiles — profils de configuration.
Pour démarrer le conteneur immédiatement après sa création, cliquez sur Create and start. Pour créer sans démarrer, utilisez le bouton Create.
Surveillance de l'état du conteneur¶
Pendant le déploiement du conteneur, la progression du téléchargement de l'image est affichée. Le statut "Setting up" avec l'indication de la progression du téléchargement montre l'avancement actuel de la création de l'instance. Une fois l'installation terminée, le statut passera à "Running" avec un indicateur vert :

Gestion des services¶
Vérification de l'état :
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 adressage IPv4 automatique :
Vérification des paramètres réseau :
Affichage de la configuration 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 l'état, les adresses IP et le type de chaque conteneur.
Gestion de l'état du conteneur¶
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, la redirection de ports est utilisée via un périphérique proxy :
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 des conteneurs¶
Affichage de la configuration¶
Affichage de la configuration complète développée du conteneur :
Affichage de la configuration de base sans les profils :
Modification des paramètres¶
Définition des paramètres de configuration :
Limitation du CPU :
Limitation de la mémoire :
Limitation des E/S disque :
Démarrage automatique du conteneur :
Ajout de périphériques¶
Syntaxe générale pour l'ajout de périphériques :
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 périphérique :
Travail avec les instantanés et la migration¶
Création d'instantanés¶
Les instantanés permettent de sauvegarder l'état du conteneur pour une récupération ultérieure :
Exemple :
Liste des instantanés du conteneur :
Restauration à partir d'un instantané¶
Exemple :
Suppression d'un instantané :
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, vous devez d'abord ajouter un distant :
Gestion des images¶
Affichage des images¶
Liste des images locales :
Liste des images dans le dépôt distant :
Recherche d'une distribution spécifique :
Copie d'images¶
Copie d'une image depuis le dépôt public avec mise à jour automatique :
Copie d'une image avec alias :
Création d'une image à partir d'un conteneur¶
Suppression d'images¶
ou par alias :
Interaction réseau¶
Gestion du réseau¶
Liste des réseaux :
Affichage de la configuration réseau :
Création d'un nouveau réseau :
# Création d'un réseau pont
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
Modification 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 du pool :
Création d'un pool de stockage :
Pool basé sur Dir :
Pool Btrfs :
Pool ZFS :
Modification d'un pool :
Suppression d'un pool :
Gestion des volumes¶
Création d'un volume personnalisé :
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 du NAT et du routage¶
Dans certains cas, une configuration manuelle des règles NAT et de routage peut être nécessaire pour fournir un accès réseau des conteneurs au réseau externe.
Passage à nftables¶
Activation du transfert IP¶
Pour une application permanente, ajoutez à /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 d'une 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 de filtrage et de la chaîne FORWARD :
Ajout de règles pour autoriser le trafic :
Autoriser le trafic des conteneurs vers l'extérieur :
Autoriser le trafic établi/associé en 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 la sauvegarde des règles :
Sauvegarde des règles actuelles :
Activation du chargement automatique :
Remarque
Des informations détaillées sur toutes les fonctionnalités d'Incus sont contenues dans la documentation officielle du développeur.