搜索

3.2. 在机器配置更改时配置节点重启行为

download PDF

您可以创建一个节点中断策略来定义,哪些机器配置改变会对集群造成中断,哪些改变不会造成中断。

您可以控制节点如何响应对 /var/etc 目录中的文件、systemd 单元、SSH 密钥和 registry.conf 文件的更改。

当您进行任何这样的更改时,节点中断策略将决定在 MCO 实现更改时,需要进行以下的哪些操作:

  • Reboot: MCO 排空并重启节点。这是默认的行为。
  • None: MCO 不排空或重启节点。MCO 在不进行其他操作的情况下应用更改。
  • Drain :MCO 会封锁并排空其工作负载的节点。工作负载使用新配置重启。
  • Reload: 对于服务,MCO 会在不重启该服务的情况下重新载入指定的服务。
  • Restart :对于服务,MCO 会完全重启指定的服务。
  • DaemonReload :MCO 重新加载 systemd 管理器配置。
  • Special :这是一个内部的 MCO 操作,用户无法设置。
注意
  • RebootNone 操作不能用于任何其他操作,因为 RebootNone 操作会覆盖其他操作。
  • 操作会按照节点中断策略列表中设置的顺序应用。
  • 如果您进行了其他机器配置更改,它们需要重新引导节点或对节点有其他的中断影响,则重新引导会取代节点中断策略操作。

先决条件

  • 已使用功能门启用 TechPreviewNoUpgrade 功能集。如需更多信息,请参阅“使用功能门启用功能”。

    警告

    在集群中启用 TechPreviewNoUpgrade 功能集可防止次版本更新。TechPreviewNoUpgrade 功能集无法被禁用。不要在生产环境集群中启用此功能。

流程

  1. 编辑 machineconfigurations.operator.openshift.io 对象以定义节点中断策略:

    $ oc edit MachineConfiguration cluster -n openshift-machine-config-operator
  2. 添加类似如下的节点中断策略:

    apiVersion: operator.openshift.io/v1
    kind: MachineConfiguration
    metadata:
      name: cluster
    # ...
    spec:
      nodeDisruptionPolicy: 1
        files: 2
        - actions: 3
          - reload: 4
              serviceName: chronyd.service 5
            type: Reload
          path: /etc/chrony.conf 6
        sshkey: 7
          actions:
          - type: Drain
          - reload:
              serviceName: crio.service
            type: Reload
          - type: DaemonReload
          - restart:
              serviceName: crio.service
            type: Restart
        units: 8
        - actions:
          - type: Drain
          - reload:
              serviceName: crio.service
            type: Reload
          - type: DaemonReload
          - restart:
              serviceName: crio.service
            type: Restart
          name: test.service
    1
    指定节点中断策略。
    2
    指定对这些路径进行修改的机器配置文件定义和操作列表。此列表支持最多 50 个条目。
    3
    指定在更改指定文件时要执行的一系列操作。操作按此列表中设置的顺序应用。此列表支持最多 10 个条目。
    4
    指定在对指定文件更改时,重新加载这里列出的服务。
    5
    指定要执行操作的服务的完整名称。
    6
    指定由机器配置管理的文件位置。当对 path 中的文件进行了更改时,策略中的操作将应用。
    7
    指定在对集群中的 SSH 密钥更改时要执行的操作列表。
    8
    指定在更改这些单元时要执行的 systemd 单元名称和操作的列表。

验证

  • 查看您创建的 MachineConfiguration 对象文件:

    $ oc get MachineConfiguration/cluster -o yaml

    输出示例

    apiVersion: operator.openshift.io/v1
    kind: MachineConfiguration
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: cluster
    # ...
    status:
      nodeDisruptionPolicyStatus: 1
        clusterPolicies:
          files:
    # ...
          - actions:
            - reload:
                serviceName: chronyd.service
              type: Reload
            path: /etc/chrony.conf
          sshkey:
            actions:
            - type: Drain
            - reload:
                serviceName: crio.service
              type: Reload
            - type: DaemonReload
            - restart:
                serviceName: crio.service
              type: Restart
          units:
          - actions:
            - type: Drain
            - reload:
                serviceName: crio.service
              type: Reload
            - type: DaemonReload
            - restart:
                serviceName: crio.service
              type: Restart
            name: test.se
    # ...

    1
    指定当前的 cluster-validated 策略。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.