×

机器配置运算符 (MCO) 不执行任何垃圾收集活动。这意味着所有渲染后的机器配置都保留在集群中。每次用户或控制器应用新的机器配置时,MCO 都会为每个受影响的机器配置池创建新的渲染配置。随着时间的推移,这可能会导致大量渲染后的机器配置,这会使机器配置的操作变得混乱。过多的渲染后的机器配置还会导致磁盘空间问题和 etcd 的性能问题。

您可以使用带有 `--confirm` 标志的 `oc adm prune renderedmachineconfigs` 命令删除旧的、未使用的渲染后的机器配置。使用此命令,您可以删除所有未使用的渲染后的机器配置,或者只删除特定机器配置池中的那些配置。您还可以删除指定数量的未使用的渲染后的机器配置,以便保留一些较旧的机器配置,以防您想检查较旧的配置。

您可以使用不带 `--confirm` 标志的 `oc adm prune renderedmachineconfigs` 命令查看将删除哪些渲染后的机器配置。

使用 `list` 子命令显示集群或特定机器配置池中的所有渲染后的机器配置。

`oc adm prune renderedmachineconfigs` 命令仅删除未使用的渲染后的机器配置。如果机器配置池正在使用渲染后的机器配置,则不会删除该渲染后的机器配置。在这种情况下,命令输出会指定未删除渲染后的机器配置的原因。

查看已渲染的机器配置

您可以使用带有 `list` 子命令的 `oc adm prune renderedmachineconfigs` 命令查看已渲染机器配置的列表。

例如,以下步骤中的命令将列出 `worker` 机器配置池的所有已渲染机器配置。

步骤
  • 可选:使用以下命令列出已渲染的机器配置

    $ oc adm prune renderedmachineconfigs list --in-use=false --pool-name=worker

    其中

    list

    显示集群中已渲染机器配置的列表。

    --in-use

    可选:指定是否仅显示正在使用的机器配置或指定池中的所有机器配置。如果为 `true`,则输出将列出机器配置池正在使用的已渲染机器配置。如果为 `false`,则输出将列出集群中所有已渲染的机器配置。默认值为 `false`。

    --pool-name

    可选:指定要从中显示机器配置的机器配置池。

    示例输出
    worker
    status: rendered-worker-ae115e2b5e6ae05e0e6e5d62c7d0dd81
    spec: rendered-worker-ae115e2b5e6ae05e0e6e5d62c7d0dd81
  • 通过运行以下命令列出您可以自动删除的已渲染机器配置。命令输出中标记为 `as it’s currently in use` 的任何已渲染机器配置都不会被删除。

    $ oc adm prune renderedmachineconfigs --pool-name=worker

    该命令在试运行模式下运行,不会删除任何机器配置。

    其中

    --pool-name

    可选:显示指定机器配置池中的机器配置。

    示例输出
    Dry run enabled - no modifications will be made. Add --confirm to remove rendered machine configs.
    DRY RUN: Deleted rendered MachineConfig rendered-worker-23d7322831a57f02998e7e1600a0865f
    DRY RUN: Deleted rendered MachineConfig rendered-worker-fc94397dc7c43808c7014683c208956e
    DRY RUN: Skipping deletion of rendered MachineConfig rendered-worker-ad5a3cad36303c363cf458ab0524e7c0 as it's currently in use

删除未使用的已渲染机器配置

您可以使用带有 `--confirm` 命令的 `oc adm prune renderedmachineconfigs` 命令删除未使用的已渲染机器配置。如果任何已渲染的机器配置未被删除,则命令输出将指示哪个未被删除以及跳过删除的原因。

步骤
  1. 可选:通过运行以下命令列出您可以自动删除的已渲染机器配置。命令输出中标记为 `as it’s currently in use` 的任何已渲染机器配置都不会被删除。

    $ oc adm prune renderedmachineconfigs --pool-name=worker
    示例输出
    Dry run enabled - no modifications will be made. Add --confirm to remove rendered machine configs.
    DRY RUN: Deleted rendered MachineConfig rendered-worker-23d7322831a57f02998e7e1600a0865f
    DRY RUN: Deleted rendered MachineConfig rendered-worker-fc94397dc7c43808c7014683c208956e
    DRY RUN: Skipping deletion of rendered MachineConfig rendered-worker-ad5a3cad36303c363cf458ab0524e7c0 as it's currently in use

    其中

    pool-name

    可选:指定要从中删除机器配置的机器配置池。

  2. 运行以下命令删除未使用的已渲染机器配置。以下步骤中的命令将删除 `worker` 机器配置池中两个最旧的未使用的已渲染机器配置。

    $ oc adm prune renderedmachineconfigs --pool-name=worker --count=2 --confirm

    其中

    --count

    可选:指定要删除的未使用的已渲染机器配置的最大数量(从最旧的开始)。

    --confirm

    可选:指示应执行修剪,而不是执行试运行。

    --pool-name

    可选:指定要从中删除机器的机器配置池。如果未指定,则会评估所有池。