搜索

18.4. 在故障域间分布计算机器

download PDF

您可以使用以下方法之一在 Nutanix 故障域间分发计算机器:

18.4.1. 编辑计算机器集以实施故障域

要使用现有计算机器集在 Nutanix 故障域之间分发计算机器,您可以使用您的配置更新计算机器集,然后使用扩展来替换现有的计算机器。

先决条件

  • 您已在集群的 Infrastructure 自定义资源 (CR) 中配置了故障域。

流程

  1. 运行以下命令,以查看集群的 Infrastructure CR。

    $ oc describe infrastructures.config.openshift.io cluster
  2. 对于每个故障域 (platformSpec.nutanix.failureDomains),请注意集群的 UUID、名称和子网对象 UUID。这些值需要将故障域添加到计算机器集中。
  3. 运行以下命令列出集群中的计算机器集:

    $ oc get machinesets -n openshift-machine-api

    输出示例

    NAME                   DESIRED   CURRENT   READY   AVAILABLE   AGE
    <machine_set_name_1>   1         1         1       1           55m
    <machine_set_name_2>   1         1         1       1           55m

  4. 运行以下命令来编辑第一个计算机器集:

    $ oc edit machineset <machine_set_name_1> -n openshift-machine-api
  5. 通过将以下内容添加到 spec.template.spec.providerSpec.value 小节中,将计算机器设置配置为使用第一个故障域:

    注意

    确保为 cluster he subnets 字段指定的值与集群的 Infrastructure CR 中的 failureDomains 小节中配置的值匹配。

    使用 Nutanix 故障域的计算机器集示例

    apiVersion: machine.openshift.io/v1
    kind: MachineSet
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <cluster_name>
      name: <machine_set_name_1>
      namespace: openshift-machine-api
    spec:
      replicas: 2
    # ...
      template:
        spec:
    # ...
          providerSpec:
            value:
              apiVersion: machine.openshift.io/v1
              failureDomain:
                name: <failure_domain_name_1>
              cluster:
                type: uuid
                uuid: <prism_element_uuid_1>
              subnets:
              - type: uuid
                uuid: <prism_element_network_uuid_1>
    # ...

  6. 注意 spec.replicas 的值,因为在扩展计算机器时需要它来应用更改。
  7. 保存您的更改。
  8. 运行以下命令,列出由更新的计算机器集管理的机器:

    $ oc get -n openshift-machine-api machines \
      -l machine.openshift.io/cluster-api-machineset=<machine_set_name_1>

    输出示例

    NAME                        PHASE     TYPE   REGION    ZONE                 AGE
    <machine_name_original_1>   Running   AHV    Unnamed   Development-STS   4h
    <machine_name_original_2>   Running   AHV    Unnamed   Development-STS   4h

  9. 对于由更新的计算机器集管理的每台机器,请运行以下命令设置 delete 注解:

    $ oc annotate machine/<machine_name_original_1> \
      -n openshift-machine-api \
      machine.openshift.io/delete-machine="true"
  10. 要使用新配置创建替换机器,请运行以下命令将计算机器设置为两倍:

    $ oc scale --replicas=<twice_the_number_of_replicas> \1
      machineset <machine_set_name_1> \
      -n openshift-machine-api
    1
    例如,如果计算机器设置中的原始副本数为 2,请将副本扩展到 4
  11. 运行以下命令,列出由更新的计算机器集管理的机器:

    $ oc get -n openshift-machine-api machines -l machine.openshift.io/cluster-api-machineset=<machine_set_name_1>

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

  12. 要删除使用旧配置创建的机器,请运行以下命令将计算机器设置为原始副本数:

    $ oc scale --replicas=<original_number_of_replicas> \1
      machineset <machine_set_name_1> \
      -n openshift-machine-api
    1
    例如,如果计算机器设置中的原始副本数为 2,请将副本扩展到 2
  13. 根据需要,继续修改机器集以引用可用于部署的额外故障域。

其他资源

18.4.2. 替换计算机器集以实施故障域

要通过替换计算机器集来跨 Nutanix 故障域分发计算机器,您可以使用您的配置创建新的计算机器集,等待它创建的机器启动,然后删除旧的计算机器集。

先决条件

  • 您已在集群的 Infrastructure 自定义资源 (CR) 中配置了故障域。

流程

  1. 运行以下命令,以查看集群的 Infrastructure CR。

    $ oc describe infrastructures.config.openshift.io cluster
  2. 对于每个故障域 (platformSpec.nutanix.failureDomains),请注意集群的 UUID、名称和子网对象 UUID。这些值需要将故障域添加到计算机器集中。
  3. 运行以下命令列出集群中的计算机器集:

    $ oc get machinesets -n openshift-machine-api

    输出示例

    NAME                            DESIRED   CURRENT   READY   AVAILABLE   AGE
    <original_machine_set_name_1>   1         1         1       1           55m
    <original_machine_set_name_2>   1         1         1       1           55m

  4. 请注意现有计算机器集的名称。
  5. 使用以下方法之一创建一个包含新计算机器设置自定义资源 (CR) 的 YAML 文件:

    • 运行以下命令,将现有计算机器集配置复制到新文件中:

      $ oc get machineset <original_machine_set_name_1> \
        -n openshift-machine-api -o yaml > <new_machine_set_name_1>.yaml

      您可以使用首选文本编辑器编辑此 YAML 文件。

    • 使用您的首选文本编辑器创建名为 <new_machine_set_name_1>.yaml 的空白 YAML 文件,并包含新计算机器集所需的值。

      如果您不确定为特定字段设置哪个值,您可以通过运行以下命令来查看现有计算机器集 CR 的值:

      $ oc get machineset <original_machine_set_name_1> \
        -n openshift-machine-api -o yaml

      输出示例

      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        labels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1
        name: <infrastructure_id>-<role> 2
        namespace: openshift-machine-api
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: <infrastructure_id>
              machine.openshift.io/cluster-api-machine-role: <role>
              machine.openshift.io/cluster-api-machine-type: <role>
              machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>
          spec:
            providerSpec: 3
              ...

      1
      集群基础架构 ID。
      2
      默认节点标签。
      注意

      对于具有用户置备的基础架构的集群,计算机器集只能使用 workerinfra 角色创建机器。

      3
      计算机器设置 CR 的 <providerSpec> 部分中的值是特定于平台的。有关 CR 中的 <providerSpec> 参数的更多信息,请参阅您的供应商计算机器设置 CR 配置示例。
  6. 通过更新或将以下内容添加到 <new_machine_set_name_1>.yaml 文件中的 spec.template.spec.providerSpec.value 小节中,将新的计算机器集配置为使用第一个故障域。

    注意

    确保为 cluster he subnets 字段指定的值与集群的 Infrastructure CR 中的 failureDomains 小节中配置的值匹配。

    使用 Nutanix 故障域的计算机器集示例

    apiVersion: machine.openshift.io/v1
    kind: MachineSet
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <cluster_name>
      name: <new_machine_set_name_1>
      namespace: openshift-machine-api
    spec:
      replicas: 2
    # ...
      template:
        spec:
    # ...
          providerSpec:
            value:
              apiVersion: machine.openshift.io/v1
              failureDomain:
                name: <failure_domain_name_1>
              cluster:
                type: uuid
                uuid: <prism_element_uuid_1>
              subnets:
              - type: uuid
                uuid: <prism_element_network_uuid_1>
    # ...

  7. 保存您的更改。
  8. 运行以下命令来创建计算机器设置 CR:

    $ oc create -f <new_machine_set_name_1>.yaml
  9. 根据需要,继续创建计算机器集以引用可用于部署的额外故障域。
  10. 通过为每个新计算机器集运行以下命令来列出由新计算机器集管理的机器:

    $ oc get -n openshift-machine-api machines -l machine.openshift.io/cluster-api-machineset=<new_machine_set_name_1>

    输出示例

    NAME                             PHASE          TYPE   REGION    ZONE                 AGE
    <machine_from_new_1>             Provisioned    AHV    Unnamed   Development-STS   25s
    <machine_from_new_2>             Provisioning   AHV    Unnamed   Development-STS   25s

    当新机器处于 Running 阶段时,您可以删除不包含故障域配置的旧计算机器集。

  11. 当您确认新机器处于 Running 阶段时,通过为每个机器运行以下命令来删除旧计算机器集:

    $ oc delete machineset <original_machine_set_name_1> -n openshift-machine-api

验证

  • 要验证没有更新的配置的计算机器集已被删除,请运行以下命令列出集群中的计算机器集:

    $ oc get machinesets -n openshift-machine-api

    输出示例

    NAME                       DESIRED   CURRENT   READY   AVAILABLE   AGE
    <new_machine_set_name_1>   1         1         1       1           4m12s
    <new_machine_set_name_2>   1         1         1       1           4m12s

  • 要验证没有更新配置的计算机器是否已删除,请运行以下命令列出集群中的机器:

    $ oc get -n openshift-machine-api machines

    删除过程中的输出示例

    NAME                        PHASE           TYPE     REGION      ZONE                 AGE
    <machine_from_new_1>        Running         AHV      Unnamed     Development-STS   5m41s
    <machine_from_new_2>        Running         AHV      Unnamed     Development-STS   5m41s
    <machine_from_original_1>   Deleting        AHV      Unnamed     Development-STS   4h
    <machine_from_original_2>   Deleting        AHV      Unnamed     Development-STS   4h

    删除完成后的输出示例

    NAME                        PHASE           TYPE     REGION      ZONE                 AGE
    <machine_from_new_1>        Running         AHV      Unnamed     Development-STS   6m30s
    <machine_from_new_2>        Running         AHV      Unnamed     Development-STS   6m30s

  • 要验证由新计算机器集创建的机器是否具有正确的配置,请运行以下命令检查 CR 中的相关字段是否有新机器:

    $ oc describe machine <machine_from_new_1> -n openshift-machine-api
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.