OpenShift 沙盒容器发行注记


OpenShift Sandboxed Containers 1.4

Red Hat OpenShift

Red Hat Customer Content Services

摘要

本发行注记总结了所有新功能、功能增强、重要的技术变化、以及对以前版本中的错误作出的主要修正。另外,还包括在此版本正式发行(GA)时存在的已知问题的信息。

前言

第 1 章 OpenShift 沙盒容器 1.4 发行注记

1.1. 关于此版本

本发行注记介绍了 OpenShift 沙盒容器 1.4 和 Red Hat OpenShift 4.13 的开发。

从 Red Hat OpenShift 4.10 开始,这个产品被完全支持并启用。

1.2. 新功能及功能增强

1.2.1. 对 OpenShift 沙盒容器的对等 pod 支持(技术预览)

用户现在可以使用 AWS 或 Microsoft Azure 上的对等 pod 部署 OpenShift 沙盒容器工作负载。这可让用户绕过嵌套虚拟化的需求。这个功能只是一个技术预览,且不被支持。如需更多信息,请参阅使用对等 pod 部署 OpenShift 沙盒容器工作负载

1.2.2. QEMU 错误日志收集

QEMU 警告和错误日志现在打印到节点日志、Kata 运行时日志和 CRI-O 日志。如需更多信息,请参阅查看 OpenShift 沙盒容器的调试日志

1.2.3. 用于安装 OpenShift 沙盒容器 Operator 的频道

安装 OpenShift 沙盒容器 Operator 时的订阅频道现在始终是 stable 而不是 stable-<version> 以启用一致性。

1.3. 程序错误修复

  • 在以前的版本中,升级 OpenShift 沙盒容器不会自动更新现有的 KataConfig CR。因此,监控来自以前部署的 pod 不会被重启,并继续使用过时的 kataMonitor 镜像运行。

    从版本 1.3.2 开始,kataMonitorImage 已从 KataConfig CR 中删除,所有监控 pod 的升级都由 Operator 内部处理。

    (KATA-1650)

  • 在以前的版本中,用户无法在断开连接的集群中安装 OpenShift 沙盒容器。kata-monitor 容器镜像的拉取规格使用标签而不是摘要。这导致镜像无法使用 ImageContentSourcePolicy 资源进行镜像。

    在这个版本中,CSV spec.relatedImages 部分已被更新,以确保包含 OpenShift 沙盒容器 Operator 中的所有容器镜像。因此,所有容器 pull 规格现在都使用摘要而不是标签,从而在断开连接的环境中启用 OpenShift 沙盒容器安装。

    (KATA-2038)

  • 在以前的版本中,在污点节点上运行的 OpenShift 沙盒容器没有指标数据。在这个版本中,在 kata-monitor pod 中添加了一个容限,pod 能够在任何节点上运行和收集指标,即使有污点的节点也是如此。(KATA-2121)
  • 在以前的版本中,OpenShift 沙盒容器 Operator 的基础镜像使用 ubi8/ubi-mimimal 镜像。在这个版本中,为了确保与 RHEL 9 集群和 Red Hat OpenShift 4.13 兼容,基础镜像已更新为使用 ubi9/ubi 镜像。(KATA-2212)

1.4. 已知问题

  • 如果使用 OpenShift 沙盒容器,您可能会在访问 Red Hat OpenShift 集群中从 hostPath 卷挂载的文件或目录时收到 SELinux 拒绝。即使运行特权沙盒容器,这些拒绝也会发生,因为特权沙盒容器不会禁用 SELinux 检查。

    在主机中遵循 SELinux 策略可保证主机文件系统默认与沙盒工作负载完全隔离。这还对 virtiofsd 守护进程或 QEMU 中潜在的安全漏洞提供更强的保护。

    如果挂载的文件或目录在主机上没有特定的 SELinux 要求,您可以使用本地持久性卷作为替代方案。文件会自动重新标记为 container_file_t,遵循 SELinux 容器运行时。请参阅使用本地卷的持久性存储

    挂载文件或目录时,自动重新标记不是选项,则主机上应该具有特定的 SELinux 标签。相反,您可以在主机上设置自定义 SELinux 规则,以允许 virtiofsd 守护进程访问这些特定标签。(KATA-469)

  • 一些 OpenShift 沙盒容器 Operator pod 使用容器 CPU 资源限制来增加 pod 的可用 CPU 数量。这些 pod 可能会收到比请求的 CPU 少。如果功能在容器内可用,您可以使用 oc rsh <pod> 访问 pod 并运行 lscpu 命令诊断 CPU 资源问题:

    $ lscpu

    输出示例

    CPU(s):                          16
    On-line CPU(s) list:             0-12,14,15
    Off-line CPU(s) list:            13

    离线 CPU 列表可能会不可预测地从 run 改为 run。

    作为临时解决方案,您可以使用 pod 注解来请求额外 CPU 而不是设置 CPU 限值。使用 pod 注解的 CPU 请求不受此问题的影响,因为处理器分配方法不同。以下注解必须添加到 pod 的元数据中,而不是设置 CPU 限制:

    metadata:
      annotations:
        io.katacontainers.config.hypervisor.default_vcpus: "16"

    (KATA-1376)

  • 运行时安装的进度显示在 kataConfig 自定义资源 (CR) 的 status 部分中。但是,如果所有以下条件都满足,则不会显示进度:

    • 没有定义 worker 节点。您可以运行 oc get machineconfigpool 来检查机器配置池中的 worker 节点数量。
    • 没有指定 kataConfigPoolSelector 来选择要安装的节点。

    在这种情况下,安装会在 control plane 节点上启动,因为 Operator 假设节点具有 control plane 和 worker 角色。kataConfig CR 的 status 部分在安装过程中不会更新。(KATA-1017)

  • 在 web 控制台中的 KataConfig 选项卡中,如果您在 YAML 视图中Create KataConfig,则 KataConfig YAML 缺少 spec 字段。切换到 Form 视图,然后返回到 YAML 视图 来解决这个问题,并显示完整的 YAML。(KATA-1372)
  • 在 web 控制台的 KataConfig 选项卡中,如果一个 KataConfig CR 已存在,会出现一个 404: Not found 错误消息。要访问现有的 KataConfig CR,请转至 Home > Search。在 Resources 列表中,选择 KataConfig。(KATA-1605)
  • 在安装 KataConfig CR 时,如果在第一次节点重启前启动 KataConfig CR 删除,节点状态将不正确。当发生这种情况时,Operator 会处于一个状态,Operator 会尝试同时删除并安装 KataConfig CR。预期的行为是安装停止并删除 KataConfig CR。(KATA-1851)
  • 当您在容器的安全上下文中设置 SELinux Multi-Category Security (MCS)标签时,pod 不会启动并抛出以下错误:

    Error: CreateContainer failed: EACCES: Permission denied: unknown

    在创建沙盒容器时,运行时无法访问容器的安全上下文。这意味着 virtiofsd 没有使用适当的 SELinux 标签运行,且无法访问容器的主机文件。因此,您无法依赖 MCS 标签来基于每个容器隔离沙盒容器中的文件。这意味着所有容器都可以访问沙盒容器中的所有文件。目前,这个问题还没有临时解决方案。

    (KATA-1875)

  • 在停止沙盒容器工作负载时,以下 QEMU 错误消息会记录到 worker 节点系统日志中:

    qemu-kvm: Failed to write msg.
    qemu-kvm: Failed to set msg fds.
    qemu-kvm: vhost VQ 0 ring restore failed
    qqemu-kvm: vhost_set_vring_call failed

    这些错误无害,可以被忽略。

    有关如何访问系统日志日志的更多信息,请参阅为红帽支持收集 OpenShift 沙盒容器数据

    (KATA-2133)

  • 当使用 Web 控制台安装 OpenShift 沙盒容器 Operator 时,UI 可能会在点 Install 后显示不正确的 Operator 版本。

    安装窗口中不正确的版本会出现在灰色文本中,如下所示:

    由红帽提供的 <version number>

    已安装正确的 Operator。您可以进入到 OperatorsInstalled Operators,以查看 OpenShift 沙盒容器 Operator 下列出的正确版本。

    (KATA-2161)

  • 将对等 pod 与 OpenShift 沙盒容器搭配使用时,在创建 KataConfig CR 时会创建 kata-remote-cc 运行时类,并将 enablePeerPods 字段设置为 true。因此,用户除了 kata 运行时类外,用户还应看到 KataConfig CR 中的 kata-remote-cc 运行时类,用户还应能够在同一集群中同时运行标准 Kata pod 和 peer-pod Kata pod。

    作为集群管理员,当检查 KataConfig CR 时,您仅在 Status.runtimeClass 字段中找到 kata。运行时类 kata-remote-cc 不会出现。目前,这个问题还没有临时解决方案。

    (KATA-2164)

  • OpenShift 沙盒容器的 FIPS 合规性只适用于 kata 运行时类。新的对等 pod 运行时类 kata-remote-cc 尚未被完全支持,且尚未针对 FIPS 合规性进行测试。(KATA-2166)

1.5. 限制

  • 当在 OpenShift 沙盒容器中使用 Buildah 工具的旧版本时,构建会失败并显示以下错误:

    process exited with error: fork/exec /bin/sh: no such file or directory
    
    subprocess exited with status 1

    您必须使用最新版本的 Buildah,位于 quay.io

    (KATA-1278)

1.6. 异步勘误更新

OpenShift 沙盒容器 4.13 的安全更新、程序错误修正、功能增强更新将会通过红帽网络以异步勘误的形式发布。所有的 Red Hat OpenShift 4.13 勘误都可以通过红帽客户门户网站获得。有关异步勘误的更多信息,请参阅 Red Hat OpenShift 生命周期

红帽客户门户网站的用户可以在红帽订阅管理(RHSM)帐户设置中启用勘误通知功能。当勘误通知被启用后,用户会在有与其注册的系统相关的勘误发行时接收到电子邮件通知。

注意

红帽客户门户网站用户帐户必须注册并使用红帽 OpenShift 权利进行 Red Hat OpenShift 勘误通知电子邮件。

本节的内容将会持续更新,以提供以后发行的与 OpenShift 沙盒容器 1.4 相关的异步勘误信息。

1.6.1. RHBA-2023:3529 - OpenShift 沙盒容器 1.4.0 镜像发行版本、程序错误修正和功能增强公告

发布日期:2023 年 6 月 8 日

OpenShift 沙盒容器发行版本 1.4.0 现已正式发布。此公告包含带有改进和程序错误修复的 OpenShift 沙盒容器的更新。

其程序错误修正列表包括在 RHBA-2023:3529 公告中。

1.6.2. RHSA-2023:4290 - OpenShift 沙盒容器 1.4.1 镜像发行版本、程序错误修正和安全公告

发布日期:2023 年 7 月 27 日

OpenShift 沙盒容器发行版本 1.4.1 现已正式发布。此公告包含带有安全和程序错误修复的 OpenShift 沙盒容器的更新。

其程序错误修正列表包括在 RHSA-2023:4290 公告中。

Legal Notice

Copyright © 2024 Red Hat, Inc.

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.