4.2. 创建 ContainerRuntimeConfig CR 以编辑 CRI-O 参数
您可以为与特定机器配置池(MCP)关联的节点更改与 OpenShift Container Platform CRI-O 运行时关联的一些设置。通过使用 ContainerRuntimeConfig 自定义资源(CR),您可以设置配置值并添加一个标签以匹配 MCP。然后,MCO 会使用更新的值重建关联节点上的 crio.conf 和 storage.conf 配置文件。
要使用 ContainerRuntimeConfig CR 恢复实现的更改,您必须删除 CR。从机器配置池中删除标签不会恢复更改。
您可以使用 ContainerRuntimeConfig CR 修改以下设置:
-
日志级别:
logLevel参数设置 CRI-Olog_level参数,即日志消息的详细程度。默认为info(log_level = info)。其他选项包括fatal、panic、error、warn、debug和trace。 -
Overlay 大小:
overlaySize参数设置 CRI-O Overlay 存储驱动程序size参数,这是容器镜像的最大大小。 -
容器运行时 :
defaultRuntime参数将容器运行时设置为runc或crun。默认为runc。
您应该为每个机器配置池有一个ContainerRuntimeConfig CR,并为该池分配所有配置更改。如果要将相同的内容应用到所有池,则所有池只需要 oneContainerRuntimeConfig CR。
您应该编辑现有的 ContainerRuntimeConfig CR,以修改现有设置或添加新设置,而不是为每个更改创建新 CR。建议您只创建一个新的 ContainerRuntimeConfig CR 来修改不同的机器配置池,或者用于临时的更改,以便您可以恢复更改。
您可以根据需要创建多个 ContainerRuntimeConfig CR,每个集群的限制为 10。对于第一个 ContainerRuntimeConfig CR,MCO 会创建一个机器配置并附加 containerruntime。对于每个后续 CR,控制器会创建一个带有数字后缀的新 containerruntime 机器配置。例如,如果您有一个带有 -2 后缀的 containerruntime 机器配置,则下一个 containerruntime 机器配置会附加 -3。
如果要删除机器配置,应该以相反的顺序删除它们,以避免超过限制。例如,您应该在删除 containerruntime-2 机器配置前删除 containerruntime-3 机器配置。
如果您的机器配置带有 containerruntime-9 后缀,并且创建了 anotherContainerRuntimeConfig CR,则不会创建新的机器配置,即使少于 10 个 containerruntime 机器配置。
显示多个 ContainerRuntimeConfig CR 示例
oc get ctrcfg
$ oc get ctrcfg
输出示例
NAME AGE ctr-overlay 15m ctr-level 5m45s
NAME AGE
ctr-overlay 15m
ctr-level 5m45s
显示多个 containerruntime 机器配置示例
oc get mc | grep container
$ oc get mc | grep container
输出示例
以下示例将 log_level 字段设置为 debug,并将覆盖大小设置为 8 GB:
ContainerRuntimeConfig CR 示例
流程
使用 ContainerRuntimeConfig CR 更改 CRI-O 设置:
为
ContainerRuntimeConfigCR 创建 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ContainerRuntimeConfigCR:oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已创建 CR:
oc get ContainerRuntimeConfig
$ oc get ContainerRuntimeConfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE overlay-size 3m19s
NAME AGE overlay-size 3m19sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否创建了新的
containerruntime机器配置:oc get machineconfigs | grep containerrun
$ oc get machineconfigs | grep containerrunCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
99-worker-generated-containerruntime 2c9371fbb673b97a6fe8b1c52691999ed3a1bfc2 3.4.0 31s
99-worker-generated-containerruntime 2c9371fbb673b97a6fe8b1c52691999ed3a1bfc2 3.4.0 31sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 监控机器配置池,直到所有系统都显示为 ready 状态:
oc get mcp worker
$ oc get mcp workerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-169 False True False 3 1 1 0 9h
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-169 False True False 3 1 1 0 9hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证设置是否在 CRI-O 中应用:
打开到机器配置池中节点的
oc debug会话,并运行chroot /host。oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
crio.conf文件中的更改:crio config | grep 'log_level'
sh-4.4# crio config | grep 'log_level'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
log_level = "debug"
log_level = "debug"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 'storage.conf' 文件中的更改:
head -n 7 /etc/containers/storage.conf
sh-4.4# head -n 7 /etc/containers/storage.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow