×

您可以修改计算机器集,例如添加标签、更改实例类型或更改块存储。

如果您需要扩展计算机器集而不进行其他更改,请参阅 手动扩展计算机器集

使用 CLI 修改计算机器集

您可以修改计算机器集的配置,然后使用 CLI 将更改传播到集群中的机器。

通过更新计算机器集配置,您可以启用功能或更改其创建的机器的属性。修改计算机器集时,您的更改仅适用于保存更新的 MachineSet 自定义资源 (CR) 后创建的计算机器。更改不会影响现有机器。

底层云提供商中所做的更改不会反映在 MachineMachineSet CR 中。要调整集群管理基础架构中的实例配置,请使用集群端资源。

您可以将现有机器替换为反映更新配置的新机器,方法是将计算机器集扩展到创建两倍数量的副本,然后将其缩减到原始副本数量。

如果您需要扩展计算机器集而不进行其他更改,则无需删除机器。

默认情况下,OpenShift Container Platform 路由器 Pod 部署在计算机器上。因为路由器需要访问某些集群资源(包括 Web 控制台),所以除非您先重新定位路由器 Pod,否则不要将计算机器集缩减到 0

此过程中的输出示例使用 AWS 集群的值。

先决条件
  • 您的 OpenShift Container Platform 集群使用 Machine API。

  • 您已使用 OpenShift CLI (oc) 以管理员身份登录到集群。

步骤
  1. 运行以下命令列出集群中的计算机器集

    $ oc get machinesets.machine.openshift.io -n openshift-machine-api
    示例输出
    NAME                           DESIRED   CURRENT   READY   AVAILABLE   AGE
    <compute_machine_set_name_1>   1         1         1       1           55m
    <compute_machine_set_name_2>   1         1         1       1           55m
  2. 运行以下命令编辑计算机器集

    $ oc edit machinesets.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
  3. 注意 spec.replicas 字段的值,因为在扩展机器集以应用更改时需要它。

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      name: <machine_set_name>
      namespace: openshift-machine-api
    spec:
      replicas: 2 (1)
    # ...
    1 此过程中的示例显示了一个 replicas 值为 2 的计算机器集。
  4. 使用所需的配置选项更新计算机器集 CR 并保存更改。

  5. 运行以下命令列出由更新的计算机器集管理的机器

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
    AWS 集群的示例输出
    NAME                        PHASE     TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Running   m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Running   m6i.xlarge   us-west-1   us-west-1a   4h
  6. 对于由更新的计算机器集管理的每台机器,通过运行以下命令设置 delete 注释

    $ oc annotate machine.machine.openshift.io/<machine_name_original_1> \
      -n openshift-machine-api \
      machine.openshift.io/delete-machine="true"
  7. 要创建具有新配置的替换机器,请运行以下命令将计算机器集扩展到两倍的副本数量

    $ oc scale --replicas=4 \(1)
      machineset.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
    1 原始示例值 2 乘以 2 变为 4
  8. 运行以下命令列出由更新的计算机器集管理的机器

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
    AWS 集群的示例输出
    NAME                        PHASE          TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Running        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Running        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_updated_1>    Provisioned    m6i.xlarge   us-west-1   us-west-1a   55s
    <machine_name_updated_2>    Provisioning   m6i.xlarge   us-west-1   us-west-1a   55s

    当新机器处于 运行中 阶段时,您可以将计算机器集缩减到原始副本数量。

  9. 要删除使用旧配置创建的机器,请运行以下命令将计算机器集缩减到原始副本数量

    $ oc scale --replicas=2 \(1)
      machineset.machine.openshift.io <machine_set_name> \
      -n openshift-machine-api
    1 原始示例值 2
验证
  • 要验证由更新的机器集创建的机器是否具有正确的配置,请运行以下命令检查新机器之一的 CR 中的相关字段

    $ oc describe machine.machine.openshift.io <machine_name_updated_1> \
      -n openshift-machine-api
  • 要验证是否已删除没有更新配置的计算机器,请运行以下命令列出由更新的计算机器集管理的机器

    $ oc get machines.machine.openshift.io \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name>
    AWS 集群在删除进行中的示例输出
    NAME                        PHASE           TYPE         REGION      ZONE         AGE
    <machine_name_original_1>   Deleting        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_original_2>   Deleting        m6i.xlarge   us-west-1   us-west-1a   4h
    <machine_name_updated_1>    Running         m6i.xlarge   us-west-1   us-west-1a   5m41s
    <machine_name_updated_2>    Running         m6i.xlarge   us-west-1   us-west-1a   5m41s
    AWS 集群在删除完成时的示例输出
    NAME                        PHASE           TYPE         REGION      ZONE         AGE
    <machine_name_updated_1>    Running         m6i.xlarge   us-west-1   us-west-1a   6m30s
    <machine_name_updated_2>    Running         m6i.xlarge   us-west-1   us-west-1a   6m30s