×

更新控制平面配置

您可以通过更新控制平面机器集自定义资源 (CR) 中的规范来更改控制平面中机器的配置。

控制平面机器集操作符监控控制平面机器,并将它们的配置与控制平面机器集 CR 中的规范进行比较。当 CR 中的规范与控制平面机器的配置不一致时,操作符会将该控制平面机器标记为需要替换。

有关 CR 中参数的更多信息,请参阅“控制平面机器集配置”。

先决条件
  • 您的集群已激活并运行控制平面机器集操作符。

步骤
  1. 通过运行以下命令编辑您的控制平面机器集 CR

    $ oc edit controlplanemachineset.machine.openshift.io cluster \
      -n openshift-machine-api
  2. 更改您想要在集群配置中更新的任何字段的值。

  3. 保存您的更改。

后续步骤
  • 对于使用默认 `RollingUpdate` 更新策略的集群,控制平面机器集会自动将更改传播到您的控制平面配置。

  • 对于配置为使用 `OnDelete` 更新策略的集群,您必须手动替换控制平面机器。

控制平面配置的自动更新

`RollingUpdate` 更新策略会自动将更改传播到您的控制平面配置。此更新策略是控制平面机器集的默认配置。

对于使用 `RollingUpdate` 更新策略的集群,操作符会创建一个具有 CR 中指定的配置的替换控制平面机器。当替换的控制平面机器准备就绪后,操作符会删除标记为要替换的控制平面机器。然后,替换机器加入控制平面。

如果多个控制平面机器被标记为要替换,操作符会通过一次替换一台机器重复此替换过程,直到它替换了每一台机器,从而保护 etcd 的健康状况。

控制平面配置的手动更新

您可以使用 `OnDelete` 更新策略通过手动替换机器来将更改传播到您的控制平面配置。手动替换机器允许您在更广泛地应用更改之前,在一个机器上测试配置更改。

对于配置为使用 `OnDelete` 更新策略的集群,当您删除现有机器时,操作符会创建一个替换控制平面机器。当替换的控制平面机器准备就绪后,etcd 操作符允许删除现有机器。然后,替换机器加入控制平面。

如果删除多个控制平面机器,操作符会同时创建所有必需的替换机器。操作符通过防止一次从控制平面中删除多于一台机器来维护 etcd 的健康状况。

替换控制平面机器

要替换具有控制平面机器集的集群中的控制平面机器,您需要手动删除该机器。控制平面机器集将使用控制平面机器集自定义资源 (CR) 中的规范替换已删除的机器。

先决条件
  • 如果您的集群运行在 Red Hat OpenStack Platform (RHOSP) 上,并且您需要腾出计算服务器(例如升级),则必须通过运行以下命令禁用机器运行所在的 RHOSP 计算节点

    $ openstack compute service set <target_node_host_name> nova-compute --disable

    有关更多信息,请参阅 RHOSP 文档中的准备迁移

步骤
  1. 通过运行以下命令列出集群中的控制平面机器

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api
  2. 通过运行以下命令删除控制平面机器

    $ oc delete machine \
      -n openshift-machine-api \
      <control_plane_machine_name> (1)
    1 指定要删除的控制平面机器的名称。

    如果您删除多个控制平面机器,控制平面机器集将根据配置的更新策略替换它们

    • 对于使用默认 `RollingUpdate` 更新策略的集群,操作符会一次替换一台机器,直到每台机器都被替换。

    • 对于配置为使用 `OnDelete` 更新策略的集群,操作符会同时创建所有必需的替换机器。

    两种策略在控制平面机器替换期间都维护 etcd 的健康状况。