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 设置:
为
ContainerRuntimeConfig
CR 创建 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ContainerRuntimeConfig
CR:oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已创建 CR:
oc get ContainerRuntimeConfig
$ oc get ContainerRuntimeConfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE overlay-size 3m19s
NAME AGE overlay-size 3m19s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否创建了新的
containerruntime
机器配置:oc get machineconfigs | grep containerrun
$ oc get machineconfigs | grep containerrun
Copy 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 31s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 监控机器配置池,直到所有系统都显示为 ready 状态:
oc get mcp worker
$ oc get mcp worker
Copy 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 9h
Copy 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 /host
Copy 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.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow