第 4 章 修改计算机器集


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

注意

如果您需要在不进行其他更改的情况下扩展计算机器设置,请参阅手动扩展计算机器集

4.1. 使用 CLI 修改计算机器集

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

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

注意

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

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

如果您需要在不进行其他更改的情况下扩展计算机器,则不需要删除机器。

注意

默认情况下,OpenShift Container Platform 路由器 Pod 部署在计算机器上。由于路由器需要访问某些集群资源(包括 Web 控制台),除非先重新放置了路由器 Pod,否则请不要将 worker 计算机器集扩展为 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
    此流程中的示例显示具有 replicas2 的计算机器集。
  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 加倍到 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

    当新机器处于 Running 阶段时,您可以将计算机器设置为原始副本数。

  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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.