Retour à l’aperçu de l’actualité
Incus 6.17 est maintenant disponible¶
26 sept. 2025
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.17 !
Cette nouvelle version apporte une première interface en ligne de commande pour les utilisateurs d’IncusOS, quelques améliorations pour les réseaux OVN, plus de flexibilité dans l’utilisation des clusters, et de nouvelles options pour les instances.
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Commandes de gestion d’IncusOS¶
Un nouvel ensemble de commandes a été ajouté sous incus admin os, pour configurer facilement des systèmes IncusOS distants.
stgraber@castiana:~$ incus admin os system show laptop:storage
WARNING: The IncusOS API and configuration is subject to change
config: {}
state:
drives:
- boot: true
bus: nvme
capacity_in_bytes: 5.12110190592e+11
id: /dev/disk/by-id/nvme-Samsung_SSD_970_PRO_512GB_S5JYNS0RB08237J
model_family: ""
model_name: Samsung SSD 970 PRO 512GB
remote: false
removable: false
serial_number: S5JYNS0RB08237J
smart:
enabled: true
passed: true
pools:
- devices:
- /dev/disk/by-partlabel/local-data
encryption_key_status: available
name: local
pool_allocated_space_in_bytes: 7.03410176e+08
raw_pool_size_in_bytes: 4.7244640256e+11
state: ONLINE
type: zfs-raid0
usable_pool_size_in_bytes: 4.7244640256e+11
La CLI est encore primitive et beaucoup de fonctionnalités sont à venir, mais elle peut déjà être utilisée pour une partie de la configuration du réseau, du stockage, et des services système.
Support des tunnels dans les réseaux OVN¶
Les réseaux OVN peuvent désormais utiliser les clefs de configuration relatives aux tunnels, présentes depuis longtemps pour les réseaux de type bridge.
Celles-ci permettent d’étendre un réseau OVN en GRE ou VXLAN.
root@server04:~# incus network show ovn-vxlan
config:
bridge.mtu: "1450"
ipv4.address: 10.12.125.1/24
ipv4.nat: "true"
ipv6.address: fd42:ce36:66f9:5ec2::1/64
ipv6.nat: "true"
network: UPLINK
tunnel.sta.id: "100"
tunnel.sta.protocol: vxlan
volatile.network.ipv4.address: 172.31.254.15
volatile.network.ipv6.address: fd00:1e4d:637d:1234:1266:6aff:fe98:b8db
description: ""
name: ovn-vxlan
type: ovn
used_by: []
managed: true
status: Created
locations:
- server04
- server03
- server01
- server02
project: default
Documentation : https://linuxcontainers.org/incus/docs/main/reference/network_ovn/
Contrôle de la priorité des instances en cas d’épuisement de la mémoire¶
Une nouvelle clef de configuration pour les conteneurs et les machines virtuelles a été ajoutée, pour contrôler la priorité des processus en cas d’épuisement de la mémoire.
La clef de configuration est limits.memory.oom_priority, et sa valeur correspond à la priorité du processus, une petite valeur signifiant que celui-ci a moins de chance d’être tué par l’OOM Killer en cas d’épuisement mémoire.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/instance_options/#instance-options-limits
Modification de la configuration et des périphériques des instances à l’import¶
Il est à présent possible d’appliquer des changements dans la configuration et les périphériques d’une instance lors de son import (incus import). Le fonctionnement est similaire à celui de la copie d’instance (incus copy).
stgraber@castiana:~$ incus config show a1
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine edge amd64 (20250925_13:00)
image.os: Alpine
image.release: edge
image.requirements.secureboot: "false"
image.serial: "20250925_13:00"
image.type: squashfs
image.variant: default
volatile.base_image: aba1610b7aca5e68952511100e2652423baaa326d66d8a81efafb9385b322976
volatile.cloud-init.instance-id: 3da65657-1355-40ec-88b0-c69cee657ddb
volatile.eth0.host_name: veth18d71455
volatile.eth0.hwaddr: 10:66:6a:fd:cc:96
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
volatile.uuid: dc392e6f-e1dd-42cd-af81-3491eebac20e
volatile.uuid.generation: dc392e6f-e1dd-42cd-af81-3491eebac20e
devices:
root:
path: /
pool: default
size: 1GiB
type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""
stgraber@castiana:~$ incus export a1
Backup exported successfully!
stgraber@castiana:~$ incus delete -f a1
stgraber@castiana:~$ incus import a1.tar.gz -c limits.cpu=4 -d root,size=5GiB
stgraber@castiana:~$ incus config show a1
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine edge amd64 (20250925_13:00)
image.os: Alpine
image.release: edge
image.requirements.secureboot: "false"
image.serial: "20250925_13:00"
image.type: squashfs
image.variant: default
limits.cpu: "4"
volatile.base_image: aba1610b7aca5e68952511100e2652423baaa326d66d8a81efafb9385b322976
volatile.cloud-init.instance-id: 3da65657-1355-40ec-88b0-c69cee657ddb
volatile.eth0.host_name: veth18d71455
volatile.eth0.hwaddr: 10:66:6a:fd:cc:96
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
volatile.uuid: dc392e6f-e1dd-42cd-af81-3491eebac20e
volatile.uuid.generation: dc392e6f-e1dd-42cd-af81-3491eebac20e
devices:
root:
path: /
pool: default
size: 5GiB
type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""
Rôle database-client pour les nœuds des clusters¶
Un nouveau rôle database-client a été ajouté pour les nœuds des clusters.
Donner ce rôle à un serveur dans un cluster garantit que celui-ci n’obtiendra jamais de copie de la base de données et ne se comportera qu’en client uniquement.
Ce rôle sert principalement à gérer les clusters dans lesquels certains serveurs sont des machines virtuelles fonctionnant sur des serveurs physiques qui font eux-mêmes partie du cluster. Dans un tel scénario, il faut s’assurer qu'aucune de ces machines virtuelles ne fait partie du cluster de la base de données d’Incus, car perdre un serveur physique entraînerait la perte de potentiellement plusieurs nœuds supplémentaires de la base, ce qui pourrait provoquer la perte instantanée du quorum et le blocage du cluster.
root@server04:~# incus cluster list
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server01 | https://[2602:fc62:b:8006:216:3eff:fe1a:ed0d]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server02 | https://[2602:fc62:b:8006:216:3eff:fe56:5276]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server03 | https://[2602:fc62:b:8006:216:3eff:fec6:eaa8]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server04 | https://[2602:fc62:b:8006:216:3eff:fea3:6d]:8443 | database-standby | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
root@server04:~# incus cluster role add server04 database-client
root@server04:~# incus cluster list
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| NAME | URL | ROLES | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS | MESSAGE |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server01 | https://[2602:fc62:b:8006:216:3eff:fe1a:ed0d]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server02 | https://[2602:fc62:b:8006:216:3eff:fe56:5276]:8443 | database | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server03 | https://[2602:fc62:b:8006:216:3eff:fec6:eaa8]:8443 | database-leader | x86_64 | default | | ONLINE | Fully operational |
| | | database | | | | | |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server04 | https://[2602:fc62:b:8006:216:3eff:fea3:6d]:8443 | database-client | x86_64 | default | | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
Documentation : https://linuxcontainers.org/incus/docs/main/explanation/clustering/
Support de parent=none pour les réseaux uplink OVN¶
Il est maintenant possible d’avoir un réseau uplink OVN n’existant que dans un sous-ensemble de serveurs d’un cluster. Les serveurs n’ayant pas accès au réseau en question doivent avoir parent=none dans leur configuration.
Avec ce paramètre, OVN ne lancera ses routeurs logiques que sur les serveurs qui sont physiquement connectés à l’uplink, tout en permettant au reste des serveurs de lancer des instances connectées au réseau OVN en tunellisant le trafic vers les autres serveurs.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/network_ovn/
Définition des groupes dans un cluster via une préconfiguration¶
La logique de préconfiguration d’Incus a été étendue pour inclure les groupes dans les clusters.
Cela permet de configurer le groupe par défaut, ainsi que des groupes supplémentaires, durant l’initialisation.
root@server01:~# cat seed.yaml
cluster_groups:
- name: default
description: Default cluster group
config:
instances.vm.cpu.x86_64.baseline: host
- name: test2
description: Test
config:
instances.vm.cpu.x86_64.baseline: core2duo
root@server01:~# incus admin init --preseed < seed.yaml
root@server01:~#
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- tests: Skip XFS on ZFS with Ubuntu 24.04
- doc: Remove unnecessary backquotes around commands in TrueNAS doc
- incusd/device/disk: Allow mounting individual files from custom volumes
- tests: Test mounting individual files from custom volumes
- network/incusd: Allow parent=none physical networks, bypass chassis enablement
- incusd/cluster/evacuate: Clarify error
- doc/instance-create: Mention TLS for the agent
- devcontainer: Update Go to 1.24 and Debian to trixie
- incusd/db: Add 'database-client' role
- incusd/cluster: Add support for rebalancing nodes with 'database-client' role
- incusd: Add logic for selecting nodes with 'database-client' role to process
- incusd: Allow rebalancing when there are too many voters or stand-by nodes
- docs: Fix markdown linting issues for tables
- incusd/cluster: Rename dqlite to cowsql in header
- incus: Add incus admin os command
- i18n: Update translation templates
- incusd/cluster: Clarify comment for cluster rebalancing
- incusd/instance_patch: Fix description field not respecting PATCH semantics
- Translated using Weblate (Portuguese)
- client/oci: Allow OCI image names with a pinned hash
- doc: Add Rocky 10 Copr Repository
- shared/tls: Remove tls.Config.Time override
- build(deps): bump actions/setup-go from 5 to 6
- build(deps): bump actions/labeler from 5 to 6
- incusd/storage/lvm: Don't use pvcreate with cluster
- incus/admin/os: Fix list commands
- incus/admin/os: Don't require remote name in debug
- incus/admin/os: Rename commands for consistency
- doc: Update third party tool URLs
- doc: Hashicorp web servers don't like Github Runners
- incusd/api_os: Set X-IncusOS-Proxy prefix
- incus/export: Fail fast if target already exists
- i18n: Update translation templates
- tests: Cleanup backup files after use
- docs: Clarify clustered storage pools
- api: instance_limits_oom
- incusd/instance/validate: Add OOM priority validation
- incusd/instance/config: Add limits.memory.oom_priority config key
- doc: Update metadata
- incusd/instance/driver_common: Add setOOMPriority shared method
- incusd/instance/driver_lxc: Apply OOM priority to containers
- incusd/instance/driver_qemu: Apply OOM priority to VMs
- incusd/project/permissions: Forbid limits.memory.oom_priority in restricted projects
- api: backup_override_config
- client: Allow config/device override on backup import
- incus/import: Add override config and device
- incusd/instances/import: Add device and config overrides
- i18n: Update translation templates
- po: Manual import from weblate
- internal/incusos: Introduce IncusOS API client
- incusd/sys/os: Make use of IncusOS client
- incusd: Update for OS struct change
- incusd/networks: Use IncusOS API client
- incusd/storage: Add IncusOS service checks
- incusd/network: Add IncusOS service checks
- incusd/config: Prevent unsetting core.https_address on IncusOS
- incusd: Consistent spelling of IncusOS
- incusd/certificates: Add check for IncusOS
- incusd/db: Add UpdateStoragePoolConfig
- incusd/storage/drivers: Add SameSource field to Info struct
- incusd: Update configs of all members when SameSource is true
- incusd/storage: Fix unmount calls for ISO volumes
- incusd/storage/lvm: Fix locking changes
- incusd/instance/qemu: Re-enable vsock on Windows
- shared/idmap: Skip xattrs on EINVAL
- Makefile: Bump minimal Go to 1.24.7 and remove pins
- gomod: Update dependencies
- Makefile: Use latest go-swagger (for Go 1.25 support)
- Revert "github: Disable go-swagger on Go 1.25+"
- incusd/network/driver: Add support for network tunnels to OVN networks
- incusd/networks: Validate config keys only for ClientTypeNormal requests
- api: Add network_ovn_tunnels extension
- doc: Update config
- client/oci: Set the umoci logger on init
- incusd/instances/oci: Properly handle environment from profiles
- shared/api: Add missing YAML tag
- api: init_preseed_cluster_groups
- shared/api: Add support for cluster group preseeding
- client: Add support for cluster group preseeding
- doc/rest-api: Refresh swagger YAML
- client: Implement IdenticalCertificate
- incusd/cluster: Set IdenticalCertificate for intra-cluster connections
- incusd/cluster: Rework tlsTransport to handle cluster certificate validation
- incusd/cluster: Make use of updated tlsTransport
- gomod: Update dependencies
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.17.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
