如何添加远程服务器

远程服务器是 Incus 命令行客户端中的一个概念。默认情况下,命令行客户端与本地 Incus 守护进程进行交互,但您可以添加其他服务器或集群来进行交互。

远程服务器的一个用例是分发可以在本地服务器上创建实例的镜像。有关更多信息,请参见 默认镜像服务器

您也可以将完整的 Incus 服务器作为远程服务器添加到您的客户端。在这种情况下,您可以像与本地守护进程一样与远程服务器交互。例如,您可以在远程服务器上管理实例或更新服务器配置。

身份验证

为了能够将 Incus 服务器添加为远程服务器,必须公开服务器的 API,这意味着必须设置其 core.https_address 服务器配置选项。

添加服务器时,您必须使用为 远程 API 身份验证 选择的方法进行身份验证。

有关更多信息,请参见 如何将 Incus 暴露给网络

列出已配置的远程服务器

要查看所有已配置的远程服务器,请输入以下命令

incus remote list

使用 simple streams 格式 的远程服务器是纯镜像服务器。使用 incus 格式的服务器是 Incus 服务器,它们可以仅用作镜像服务器,也可以除了作为镜像服务器之外,还提供一些镜像。有关更多信息,请参见 镜像服务器类型

添加远程 Incus 服务器

要将 Incus 服务器添加为远程服务器,请输入以下命令

incus remote add <remote_name> <IP|FQDN|URL> [flags]

某些身份验证方法需要特定的标志(例如,使用 incus remote add <remote_name> <IP|FQDN|URL> --auth-type=oidc 用于 OIDC 身份验证)。有关更多信息,请参见 与 Incus 服务器进行身份验证远程 API 身份验证

例如,请输入以下命令以通过 IP 地址添加远程服务器

incus remote add my-remote 192.0.2.10

系统会提示您确认远程服务器指纹,然后会询问您令牌。

选择默认远程服务器

Incus 命令行客户端预配置了 local 远程服务器,它是本地 Incus 守护进程。

要选择另一个远程服务器作为默认远程服务器,请输入以下命令

incus remote switch <remote_name>

要查看配置为默认远程服务器的服务器,请输入以下命令

incus remote get-default

配置全局远程服务器

您可以在全局范围内(系统级)配置远程服务器。这些远程服务器可用于添加配置的每个 Incus 服务器的用户。

用户可以覆盖这些系统远程服务器(例如,通过运行 incus remote renameincus remote set-url),这会导致远程服务器及其关联的证书被复制到用户配置中。

要配置全局远程服务器,请创建或编辑位于 /etc/incus/ 中的 config.yml 文件。

远程服务器的证书必须存储在同一位置的 servercerts 目录中(例如,/etc/incus/servercerts/)。它们必须与远程服务器名称匹配(例如,foo.crt)。

也可以通过将它们放置在 clientcerts 目录中来提供每个远程客户端证书。类似性必须与远程名称匹配(例如,foo.crtfoo.key)。

请参阅以下示例配置

remotes:
  foo:
    addr: https://192.0.2.4:8443
    auth_type: tls
    project: default
    protocol: incus
    public: false
  bar:
    addr: https://192.0.2.5:8443
    auth_type: tls
    project: default
    protocol: incus
    public: false

启用 keepalive

对于那些经常与特定远程交互的人,可以启用新的 keepalive 模式。

启用后,Incus 将与目标服务器保持连接,最长可达配置的超时时间。这可以在运行许多 incus 命令时显着减少延迟。

要启用,请编辑您的 config.yml(通常在 ~/.config/incus 中),并将您的远程更改为如下所示

  my-remote:
    addr: https://192.0.2.5:8443
    auth_type: tls
    project: default
    protocol: incus
    public: false
    keepalive: 30

在此示例中,将使用 30 秒的超时时间。