Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在容器中运行第三方应用程序

要在 Junos OS 演化版上运行您自己的应用程序,您可以选择将它们部署为 Docker 容器。容器在 Junos OS 演化版上运行,应用程序在容器中运行,使它们与主机操作系统隔离。 容器安装在挂载在 / var/extensions 的单独分区中。容器在重新启动和软件升级后仍然存在。

注意:

Docker 容器未集成到 Junos OS 演化版中,而是使用 Docker 命令完全通过 Linux 创建和管理。有关 Docker 容器和命令的更多信息,请参阅官方 Docker 文档: https://docs.docker.com/get-started/

容器对可以从系统使用的资源有默认限制:

  • Storage – /var/extensions 分区的大小由平台驱动:8GB 或 /var 总大小的 30%,以较小者为准。

  • Memory – 容器没有默认的物理内存限制。这是可以更改的。

  • CPU – 容器没有默认的 CPU 限制。这是可以更改的。

注意:

如有必要,可以修改容器的资源限制。请参阅 修改容器的资源限制

部署 Docker 容器

要部署 docker 容器,请执行以下操作:

  1. 启动绑定到 VRF 的 Docker 服务(例如 vrf0)。此 Docker 服务管理的所有容器都将绑定到此 Linux VRF。
  2. 通过配置以下环境变量为客户端设置 Docker 套接字:
  3. 导入映像。
    注意:

    需要针对不同的容器更改命令的 import URL。

  4. 确保映像已下载,并获取映像 ID。
  5. 使用映像 ID 创建一个容器,并在该容器中输入 bash 会话。
  6. 使用映像 ID 创建具有数据包 IO 和 Netlink 功能的容器,并在该容器中输入bash会话。
    注意:

    默认情况下,Docker 容器是守护程序化的,除非您使用该 -it 参数。

管理 Docker 容器

Docker 容器通过标准 Docker Linux 工作流进行管理。使用 docker pspstop Linux 命令显示正在运行的 Docker 容器,并使用 Docker 命令管理容器。有关 Docker 命令的详细信息,请参阅: https://docs.docker.com/engine/reference/commandline/cli/

注意:

Docker 容器中的自定义应用程序不支持 Junos OS 演化版高可用性功能,如果应用程序具有高可用性功能,则应在每个 RE 上运行该应用程序,以确保它可以自行同步。此类应用程序需要具有管理自身并与所有实例通信所需的业务逻辑。

为 Docker 容器选择 VRF

容器从 Docker 守护程序继承虚拟路由和转发 (VRF)。为了在不同的 VRF 中运行容器,需要在相应的 VRF 中启动 Docker 守护程序实例。该 docker@vrf.service 实例允许在相应的 VRF 中启动守护程序。如果未指定 VRF,则 VRF 默认为 vrf0

默认情况下运行docker.servicevrf:none

特定 VRF 的 docker 守护程序侦听位于 / run/docker-vrf.sock 的相应套接字。

这是在 Linux 上看到的 VRF,而不是 Junos OS Evolved VRF。该实用程序 evo_vrf_name (从 Junos OS 演化版 24.1 开始提供)可用于查找与 Junos OS 演化版 VRF 对应的 Linux VRF。

Docker 客户端使用以下参数与特定于 VRF 的 docker 守护程序相关联:

例如,要在中 vrf0 运行容器,请输入以下 Docker 命令和参数:

注意:

一个容器只能关联到单个 VRF。

修改容器的资源限制

容器的默认资源限制通过位于 / etc/extensions/platform_attributes 的文件进行控制。打开此文件后,您将看到以下文本:

若要更改容器的资源限制,请向 EXTENSIONS 文件底部的条目添加值:

  • EXTENSIONS_FS_DEVICE_SIZE_MIB= 控制容器可以使用的最大存储空间。输入以字节为单位的值。默认值为 8GB 或 /var 总大小的 30%,以较小者为准。

  • EXTENSIONS_CPU_QUOTA_PERCENTAGE= 控制容器可以使用的最大 CPU 使用率。输入一个值,以 CPU 使用率的百分比表示。

  • EXTENSIONS_MEMORY_MAX_MIB= 控制容器可以使用的最大物理内存量。输入以字节为单位的值。

谨慎:

在修改容器的资源限制之前,请注意配置中必须支持的规模的 CPU 和内存要求。增加容器的资源限制时要小心,以防止它们对系统造成压力。