1.6. 在边缘设备上管理应用程序


技术预览: 您可以通过更新设备规格中的应用程序列表,在设备上部署、更新或删除应用程序。当 Red Hat Edge Manager 代理检查并检测规格中的更改时,代理会从开放容器项目(OCI)兼容 registry 中下载任何新的或更新的应用程序软件包和镜像。然后,代理将软件包部署到适当的应用程序运行时,或从该运行时中删除它们。

Red Hat Edge Manager 支持 podman-compose 工具作为应用程序运行时和格式。

1.6.1. 先决条件

1.6.2. 构建应用程序软件包镜像

Red Hat Edge Manager 可以从兼容开放容器项目(OCI)的 registry 下载应用程序软件包。您可以构建包含 podman-compose 格式的应用程序软件包的 OCI 容器镜像,并将镜像推送到 OCI registry。

完成以下步骤:

  1. 在名为 podman-compose.yaml 的文件中定义应用程序的功能,它遵循 Podman Compose 规格。

    1. 使用以下内容创建一个名为 Containerfile 的文件:
    FROM scratch 
    1
    
    COPY podman-compose.yaml /podman-compose.yaml
    LABEL appType="compose" 
    2
    Copy to Clipboard Toggle word wrap
    1
    全新 容器中嵌入 compose 文件。
    2
    添加 appType=compose 标签。
  2. 构建并推送至 OCI registry 的容器镜像。

    1. 运行以下命令,定义您具有写入权限的镜像存储库:

      OCI_IMAGE_REPO=quai.io/<your_org>/<your_image>
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来定义镜像标签:

      OCI_IMAGE_TAG=v1
      Copy to Clipboard Toggle word wrap
    3. 构建容器镜像。运行以下命令:

      podman build -t ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} .
      Copy to Clipboard Toggle word wrap
    4. 推送容器镜像。
    podman push ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} .
    Copy to Clipboard Toggle word wrap

1.6.3. 使用 CLI 将应用程序部署到设备

使用 CLI 从 OCI 注册表将应用程序软件包部署到设备。

完成以下步骤:

  1. Device 资源的 spec.applications 字段中指定要部署的应用程序软件包:

    apiVersion: flightctl.io/v1alpha1
    kind: Device
    metadata:
      name: <device_name>
    spec:
    [...]
      applications:
      - name: wordpress 
    1
    
        image: quay.io/rhem-demos/wordpress-app:latest 
    2
    
        envVars: 
    3
    
          WORDPRESS_DB_HOST: <database_host>
          WORDPRESS_DB_USER: <user_name>
          WORDPRESS_DB_PASSWORD: <password>
    [...]
    Copy to Clipboard Toggle word wrap
    1
    Web 控制台和 CLI 列表应用时使用的应用程序用户定义的名称。
    2
    对 OCI registry 中的应用程序软件包的引用。
    3
    可选。键值对列表,作为环境变量或命令行标志传递给部署工具。

    注: 对于设备规格 的应用程序 部分中的每个应用程序,您可以找到对应的设备状态信息。

  2. 通过检查设备状态信息,验证设备上应用部署的状态。运行以下命令:

    flightctl get device/<your_device_id> -o yaml
    Copy to Clipboard Toggle word wrap

    请参见以下示例输出:

    [...]
    spec:
      applications:
      - name: example-app
        image: quay.io/flightctl-demos/example-app:v1
    status:
      applications:
      - name: example-app
        ready: 3/3
        restarts: 0
        status: Running
      applicationsSummary:
        info: All application workloads are healthy.
        status: Healthy
    [...]
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部