11.2. Cluster API 入门


Machine API 和 Cluster API 是具有类似资源的不同 API 组。您可以使用这些 API 组自动管理 OpenShift Container Platform 集群中的基础架构资源。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

当您安装具有三个 control plane 节点的标准 OpenShift Container Platform 集群时,三个计算节点,并使用默认配置选项时,安装程序会在 openshift-machine-api 命名空间中置备以下基础架构资源

  • 管理三台 control plane 机器的 control plane 机器集。
  • 管理三台计算机器的一个或多个计算机器集。
  • 管理 spot 实例的机器健康检查。

当您安装支持使用 Cluster API 管理基础架构资源的集群时,安装程序会在 openshift-cluster-api 命名空间中置备以下资源:

  • 一个集群资源。
  • 一个特定于供应商的基础架构集群资源。

在支持将 Machine API 资源迁移到 Cluster API 资源的集群上,双向同步控制器会自动创建这些主资源。如需更多信息,请参阅"Machine API to Cluster API 资源迁移"。

11.2.1. 创建 Cluster API 主资源

对于不支持将 Machine API 资源迁移到 Cluster API 资源的集群,您必须在 openshift-cluster-api 命名空间中手动创建以下 Cluster API 资源:

  • 与计算机器集对应的一个或多个机器模板。
  • 管理三台计算机器的一个或多个计算机器集。

11.2.1.1. 创建 Cluster API 机器模板

您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建特定于供应商的机器模板资源。

先决条件

  • 您已部署了 OpenShift Container Platform 集群。
  • 您已启用了 Cluster API 的使用。
  • 您可以使用具有 cluster-admin 权限的账户访问集群。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 创建一个类似以下示例的 YAML 文件。此流程使用 <machine_template_resource_file>.yaml 作为示例文件名。

    apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    kind: <machine_template_kind>
    metadata:
      name: <template_name>
      namespace: openshift-cluster-api
    spec:
      template:
        spec:

    其中:

    kind
    指定机器模板类型。这个值必须与您的平台的值匹配。

    以下值有效:

    Expand
    集群基础架构供应商value

    Amazon Web Services (AWS)

    AWSMachineTemplate

    Google Cloud

    GCPMachineTemplate

    Microsoft Azure

    AzureMachineTemplate

    Red Hat OpenStack Platform (RHOSP)

    OpenStackMachineTemplate

    VMware vSphere

    VSphereMachineTemplate

    裸机

    Metal3MachineTemplate

    metadata.name
    指定机器模板的名称。
    spec.template.spec
    指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 机器模板 YAML 示例。
  2. 运行以下命令来创建虚拟机模板 CR:

    $ oc create -f <machine_template_resource_file>.yaml

验证

  • 运行以下命令确认机器模板 CR 已创建:

    $ oc get <machine_template_kind> -n openshift-cluster-api

    <machine_template_kind > 替换为与您的平台对应的值。

    输出示例

    NAME              AGE
    <template_name>   77m

11.2.1.2. 创建 Cluster API 计算机器集

您可以创建使用集群 API 的计算机器集来动态管理您选择的特定工作负载的机器计算资源。

先决条件

  • 您已部署了 OpenShift Container Platform 集群。
  • 您已启用了 Cluster API 的使用。
  • 您可以使用具有 cluster-admin 权限的账户访问集群。
  • 已安装 OpenShift CLI(oc)。
  • 您已创建了机器模板资源。

流程

  1. 创建一个类似如下的 YAML 文件:此流程使用 <machine_set_resource_file>.yaml 作为示例文件名。

    apiVersion: cluster.x-k8s.io/v1beta1
    kind: MachineSet
    metadata:
      name: <machine_set_name>
      namespace: openshift-cluster-api
    spec:
      clusterName: <cluster_name>
      replicas: 1
      selector:
        matchLabels:
          test: example
      template:
        metadata:
          labels:
            test: example
        spec:
    # ...

    其中:

    metadata.name
    为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
    spec.clusterName
    指定集群名称。运行以下命令来获取集群 ID 的值:
    $  oc get infrastructure cluster \
       -o jsonpath='{.status.infrastructureName}'
    spec.template.spec
    指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 计算机器设置 YAML 示例。
  2. 运行以下命令来创建计算机器设置 CR:

    $ oc create -f <machine_set_resource_file>.yaml
  3. 运行以下命令确认已创建了计算机器设置 CR:

    $ oc get machineset.cluster.x-k8s.io -n openshift-cluster-api

    输出示例

    NAME                 CLUSTER          REPLICAS   READY   AVAILABLE   AGE   VERSION
    <machine_set_name>   <cluster_name>   1          1       1           17m

    当新的计算机器集可用时,REPLICASAVAILABLE 值会匹配。如果 compute 机器集不可用,请等待几分钟,然后再次运行命令。

验证

  • 要验证计算机器是否会根据所需配置创建机器,请按照以下步骤查看集群中的机器和节点列表:

    • 查看 Cluster API 机器列表:

      $ oc get machine.cluster.x-k8s.io -n openshift-cluster-api

      输出示例

      NAME                             CLUSTER          NODENAME                                 PROVIDERID      PHASE     AGE     VERSION
      <machine_set_name>-<string_id>   <cluster_name>   <ip_address>.<region>.compute.internal   <provider_id>   Running   8m23s

    • 查看节点列表:

      $ oc get node

      输出示例

      NAME                                       STATUS   ROLES    AGE     VERSION
      <ip_address_1>.<region>.compute.internal   Ready    worker   5h14m   v1.28.5
      <ip_address_2>.<region>.compute.internal   Ready    master   5h19m   v1.28.5
      <ip_address_3>.<region>.compute.internal   Ready    worker   7m      v1.28.5

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部