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 资源迁移到集群 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> 
    1
    
    metadata:
      name: <template_name> 
    2
    
      namespace: openshift-cluster-api
    spec:
      template:
        spec: 
    3
    1
    指定机器模板类型。这个值必须与您的平台的值匹配。以下值有效:
    Expand
    集群基础架构供应商value

    Amazon Web Services (AWS)

    AWSMachineTemplate

    Google Cloud

    GCPMachineTemplate

    Microsoft Azure

    AzureMachineTemplate

    Red Hat OpenStack Platform (RHOSP)

    OpenStackMachineTemplate

    VMware vSphere

    VSphereMachineTemplate

    裸机

    Metal3MachineTemplate

    2
    为机器模板指定名称。
    3
    指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 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> 
    1
    
      namespace: openshift-cluster-api
    spec:
      clusterName: <cluster_name> 
    2
    
      replicas: 1
      selector:
        matchLabels:
          test: example
      template:
        metadata:
          labels:
            test: example
        spec: 
    3
    
    # ...
    1
    为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
    2
    指定集群的名称。运行以下命令来获取集群 ID 的值:
    $  oc get infrastructure cluster \
       -o jsonpath='{.status.infrastructureName}'
    3
    指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 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
返回顶部