4.2. 性能和扩展
如果 CPU 离线,增加容器 CPU 资源限值会失败
如果请求的 CPU 离线,使用容器 CPU 资源限制来增加 pod 的可用 CPU 数量会失败。如果功能可用,您可以通过运行 oc rsh <pod> 命令来访问 pod,然后运行 lscpu 命令诊断 CPU 资源问题:
lscpu
$ lscpu
输出示例:
CPU(s): 16 On-line CPU(s) list: 0-12,14,15 Off-line CPU(s) list: 13
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"
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
$ 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
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: unknownCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果将
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-2578, JIRA:KATA-2577