关于项目¶
您可以使用项目通过将相关的实例分组在一起来保持 Incus 服务器的整洁。除了隔离的实例外,每个项目还可以具有特定的镜像、配置文件、网络和存储。
例如,项目在以下场景中很有用
您为不同的目的运行大量实例,例如,针对不同的客户项目。您希望将这些实例分开,以便于查找和维护它们,并且您可能希望在每个客户项目中重用相同的实例名称以保持一致性。客户项目中的每个实例都应使用相同的基准配置(例如,网络和存储),但客户项目之间的配置可能有所不同。
在这种情况下,您可以为每个客户项目(因此每个实例组)创建一个 Incus 项目,并为每个 Incus 项目使用不同的配置文件、网络和存储。
您的 Incus 服务器由多个用户共享。每个用户运行自己的实例,并且可能希望配置自己的配置文件。您希望保持用户实例的限制,以便每个用户只能与其自己的实例交互,并且看不到其他用户创建的实例。此外,您希望能够限制每个用户的资源,并确保不同用户的实例不会相互干扰。
在这种情况下,您可以使用受限项目设置多用户环境。
Incus 带有一个 default
项目。有关如何添加项目的说明,请参阅 如何创建和配置项目。
项目的隔离¶
项目始终封装其包含的实例,这意味着实例不能在项目之间共享,并且实例名称可以在多个项目中重复。当您处于特定项目中时,您只能看到属于该项目的实例。
其他实体(镜像、配置文件、网络和存储)可以隔离在项目中或从 default
项目继承。要配置哪些实体是隔离的,您需要在项目中启用或禁用相应的功能。如果启用了某个功能,则相应的实体在项目中被隔离;如果禁用了该功能,则它从 default
项目继承。
例如,如果您为项目启用了 features.networks
,则该项目使用一组单独的网络,而不是 default
项目中定义的网络。如果您禁用了 features.images
,则该项目可以访问 default
项目中定义的镜像,并且您在使用该项目时添加的任何镜像也会添加到 default
项目中。
有关在创建项目时启用或禁用哪些功能的信息,请参阅可用 项目功能 的列表。
注意
您必须在开始使用新项目之前选择要启用的功能。当项目包含实例时,功能会被锁定。要编辑它们,您必须首先删除所有实例。
在升级中添加的新功能对于现有项目是禁用的。
多用户环境中的受限项目¶
如果您的 Incus 服务器由多个用户使用(例如,在实验室环境中),您可以使用项目来限制每个用户的活动。此方法隔离实例和其他实体(取决于功能配置),如 项目的隔离 中所述。它还将用户限制在他们自己的用户空间中,并阻止他们访问其他用户的实例或数据。任何影响 Incus 服务器及其配置的更改(例如,添加或删除存储)都不允许。
此外,此方法允许用户在无需成为 incus-admin
组的成员的情况下使用 Incus(请参阅 访问 Incus 守护进程)。incus-admin
组的成员可以完全访问 Incus,包括允许附加文件系统路径和调整实例的安全功能的权限,这使得可以获取对主机系统的 root 访问权限。使用受限项目限制了用户在 Incus 中可以执行的操作,但也阻止了用户获取 root 访问权限。
项目的身份验证方法¶
您可以使用多种身份验证方式来将项目限制为特定用户
- 客户端证书
您可以限制 TLS 客户端证书 以仅允许访问特定项目。必须在限制对项目的访问权限之前创建这些项目。使用受限证书连接的客户端只能看到已授予其访问权限的项目或项目。
- 多用户 Incus 守护进程
多用户 Incus 守护进程允许基于每个用户动态创建项目。这通常用于属于
incus
组但不是更高级别的incus-admin
组的用户。当属于该组的用户开始使用 Incus 时,Incus 会自动为该用户创建一个受限的项目。
有关如何启用和配置不同身份验证方法的说明,请参阅如何将项目限制到特定用户。