4.2. 性能和扩展
如果 CPU 离线,增加容器 CPU 资源限值会失败
如果请求的 CPU 离线,使用容器 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,如下例所示:
metadata: annotations: io.katacontainers.config.hypervisor.default_vcpus: "16"
增加 sizeLimit
不会扩展临时卷
您不能使用 pod 规格中的 sizeLimit
参数来扩展临时卷,因为卷大小默认为分配给沙盒容器的 50%。
临时解决方案:通过重新挂载卷来更改大小。例如,如果分配给沙盒容器的内存为 6 GB,并且临时卷挂载到 /var/lib/containers
,您可以通过运行以下命令来将此卷的大小增加到 3 GB:
$ mount -o remount,size=4G /var/lib/containers
当资源请求注解与系统资源不匹配时,对等 pod 会失败
io.katacontainers.config.hypervisor.default_vcpus
和 io.katacontainers.config.hypervisor.default_memory
注解的值遵循 QEMU 的语义,它有以下对对等 pod 的限制:
如果将
io.katacontainers.config.hypervisor.default_memory
设置为256
,则会显示以下错误:Failed to create pod sandbox: rpc error: code = Unknown desc = CreateContainer failed: Memory specified in annotation io.katacontainers.config.hypervisor.default_memory is less than minimum required 256, please specify a larger value: unknown
-
如果将
io.katacontainers.config.hypervisor.default_memory
设置为256
,将io.katacontainers.config.hypervisor.default_vcpus
设置为1
,则会从列表中启动最小的实例类型或实例类型。 -
如果将
io.katacontainers.config.hypervisor.default_vcpus
设置为0,
则所有注解都会被忽略,并启动默认实例。
临时解决方案:将 io.katacontainers.config.hypervisor.machine_type
设置为配置映射中指定的默认 AWS 实例类型或 Azure 实例大小,以启用灵活的 pod 虚拟机大小。
Jira:KATA-2575, Jira:KATA-2577, Jira:KATA-2578