OpenShift 沙盒容器发行注记
Red Hat OpenShift
摘要
前言
第 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 沙盒容器不会自动更新现有的
KataConfigCR。因此,监控来自以前部署的 pod 不会被重启,并继续使用过时的kataMonitor镜像运行。从版本 1.3.2 开始,
kataMonitorImage已从KataConfigCR 中删除,所有监控 pod 的升级都由 Operator 内部处理。在以前的版本中,用户无法在断开连接的集群中安装 OpenShift 沙盒容器。kata-monitor 容器镜像的拉取规格使用标签而不是摘要。这导致镜像无法使用
ImageContentSourcePolicy资源进行镜像。在这个版本中,CSV
spec.relatedImages部分已被更新,以确保包含 OpenShift 沙盒容器 Operator 中的所有容器镜像。因此,所有容器 pull 规格现在都使用摘要而不是标签,从而在断开连接的环境中启用 OpenShift 沙盒容器安装。-
在以前的版本中,在污点节点上运行的 OpenShift 沙盒容器没有指标数据。在这个版本中,在
kata-monitorpod 中添加了一个容限,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"
运行时安装的进度显示在
kataConfig自定义资源 (CR) 的status部分中。但是,如果所有以下条件都满足,则不会显示进度:-
没有定义 worker 节点。您可以运行
oc get machineconfigpool来检查机器配置池中的 worker 节点数量。 -
没有指定
kataConfigPoolSelector来选择要安装的节点。
在这种情况下,安装会在 control plane 节点上启动,因为 Operator 假设节点具有 control plane 和 worker 角色。
kataConfigCR 的status部分在安装过程中不会更新。(KATA-1017)-
没有定义 worker 节点。您可以运行
-
在 web 控制台中的 KataConfig 选项卡中,如果您在 YAML 视图中 点 Create KataConfig,则
KataConfigYAML 缺少spec字段。切换到 Form 视图,然后返回到 YAML 视图 来解决这个问题,并显示完整的 YAML。(KATA-1372) -
在 web 控制台的 KataConfig 选项卡中,如果一个
KataConfigCR 已存在,会出现一个404: Not found错误消息。要访问现有的KataConfigCR,请转至 Home > Search。在 Resources 列表中,选择 KataConfig。(KATA-1605) -
在安装
KataConfigCR 时,如果在第一次节点重启前启动KataConfigCR 删除,节点状态将不正确。当发生这种情况时,Operator 会处于一个状态,Operator 会尝试同时删除并安装KataConfigCR。预期的行为是安装停止并删除KataConfigCR。(KATA-1851) 当您在容器的安全上下文中设置 SELinux Multi-Category Security (MCS)标签时,pod 不会启动并抛出以下错误:
Error: CreateContainer failed: EACCES: Permission denied: unknown
在创建沙盒容器时,运行时无法访问容器的安全上下文。这意味着
virtiofsd没有使用适当的 SELinux 标签运行,且无法访问容器的主机文件。因此,您无法依赖 MCS 标签来基于每个容器隔离沙盒容器中的文件。这意味着所有容器都可以访问沙盒容器中的所有文件。目前,这个问题还没有临时解决方案。在停止沙盒容器工作负载时,以下 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 沙盒容器数据。
当使用 Web 控制台安装 OpenShift 沙盒容器 Operator 时,UI 可能会在点 Install 后显示不正确的 Operator 版本。
安装窗口中不正确的版本会出现在灰色文本中,如下所示:
由红帽提供的 <version number>。
已安装正确的 Operator。您可以进入到 Operators → Installed Operators,以查看 OpenShift 沙盒容器 Operator 下列出的正确版本。
将对等 pod 与 OpenShift 沙盒容器搭配使用时,在创建
KataConfigCR 时会创建kata-remote-cc运行时类,并将enablePeerPods字段设置为true。因此,用户除了kata运行时类外,用户还应看到KataConfigCR 中的kata-remote-cc运行时类,用户还应能够在同一集群中同时运行标准 Kata pod 和 peer-pod Kata pod。作为集群管理员,当检查
KataConfigCR 时,您仅在Status.runtimeClass字段中找到kata。运行时类kata-remote-cc不会出现。目前,这个问题还没有临时解决方案。-
OpenShift 沙盒容器的 FIPS 合规性只适用于
kata运行时类。新的对等 pod 运行时类kata-remote-cc尚未被完全支持,且尚未针对 FIPS 合规性进行测试。(KATA-2166)
1.5. 限制
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 公告中。