This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第 3 章 部署 OpenShift 沙盒容器工作负载
您可以使用 Web 控制台或 OpenShift CLI(oc
)安装 OpenShift 沙盒容器 Operator。安装 OpenShift 沙盒容器 Operator 之前,您必须准备 OpenShift Container Platform 集群。
3.1. 先决条件 复制链接链接已复制到粘贴板!
在安装 OpenShift 沙盒容器前,请确保 OpenShift Container Platform 集群满足以下要求:
集群必须使用 Red Hat Enterprise Linux CoreOS (RHCOS) worker 在内部裸机基础架构上安装。
重要- OpenShift 沙盒容器仅支持 RHCOS worker 节点。不支持 RHEL 节点。
- 不支持嵌套虚拟化。
3.1.1. OpenShift 沙盒容器的资源要求 复制链接链接已复制到粘贴板!
OpenShift 沙盒容器允许用户在沙盒运行时 (Kata) 中的 OpenShift Container Platform 集群中运行工作负载。每个 pod 由一个虚拟机(VM)表示。每个虚拟机都在 QEMU 进程中运行,并托管一个 kata-agent
进程,它充当管理容器工作负载的监管程序,以及这些容器中运行的进程。两个额外的进程会增加开销:
-
containerd-shim-kata-v2
用于与 pod 通信。 -
virtiofsd
代表客户机处理主机文件系统访问。
每个虚拟机都配置有默认内存量。对于明确请求内存的容器,额外的内存会被热插到虚拟机中。
在没有内存资源的情况下运行的容器会消耗可用内存,直到虚拟机使用的总内存达到默认分配。客户机及其 I/O 缓冲区也消耗内存。
如果容器被授予特定数量的内存,那么该内存会在容器启动前热插到虚拟机中。
当指定内存限制时,如果消耗的内存超过限制,工作负载将被终止。如果没有指定内存限制,则虚拟机中运行的内核可能会耗尽内存。如果内核内存不足,它可能会终止虚拟机上的其他进程。
默认内存大小
下表列出了资源分配的一些默认值。
资源 | 值 |
---|---|
默认为虚拟机分配的内存 | 2Gi |
启动时客户机 Linux 内核内存使用 | ~110Mi |
QEMU 进程使用的内存(虚拟机内存除外) | ~30Mi |
| ~10Mi |
| ~20Mi |
在 Fedora 上运行 | ~300Mi* [1] |
文件缓冲区会出现并在多个位置考虑:
- 在客户机中它被显示为文件缓冲缓存。
-
在映射允许的用户空间文件 I/O 操作的
virtiofsd
守护进程中。 - 在 QEMU 进程中作为客户机内存。
内存使用率指标正确考虑内存用量总量,该指标仅计算该内存一次。
Pod 开销描述了节点上 pod 使用的系统资源量。您可以使用 oc describe runtimeclass kata
获取 Kata 运行时的当前 pod 开销,如下所示。
示例
oc describe runtimeclass kata
$ oc describe runtimeclass kata
输出示例
您可以通过更改 RuntimeClass
的 spec.overhead
字段来更改 pod 开销。例如,如果您为容器运行的配置消耗 QEMU 进程和客户机内核数据的 350Mi 内存,您可以更改 RuntimeClass
开销来满足您的需要。
红帽支持指定的默认开销值。不支持更改默认开销值,这可能会导致技术问题。
在客户机中执行任何类型的文件系统 I/O 时,将在客户机内核中分配文件缓冲区。文件缓冲区也在主机上的 QEMU 进程以及 virtiofsd
进程中映射。
例如,如果您在客户机中使用 300Mi 文件缓冲区缓存,QEMU 和 virtiofsd
都显示使用 300Mi 额外内存。但是,所有三种情况下都使用相同的内存。换句话说,内存使用的总量仅为 300Mi,这个值被映射在三个不同的位置。报告内存使用率指标时,会正确计算。