×

使用集群 API 管理机器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让客户尽早访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

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

对于集群 API 技术预览,您必须手动创建集群 API 所需的主资源。

创建集群 API 主资源

要创建集群 API 主资源,您必须获取集群 ID 值,该值用于集群资源清单中的<cluster_name>参数。

获取集群 ID 值

您可以使用 OpenShift CLI (oc) 查找集群 ID 值。

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您可以使用具有 cluster-admin 权限的帐户访问集群。

  • 您已安装 OpenShift CLI (oc)。

步骤
  • 运行以下命令获取集群 ID 值

    $  oc get infrastructure cluster \
       -o jsonpath='{.status.infrastructureName}'

您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它们来手动创建集群 API 主资源。

创建集群 API 集群资源

您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建集群资源。

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您已启用集群 API 的使用。

  • 您可以使用具有 cluster-admin 权限的帐户访问集群。

  • 您已安装 OpenShift CLI (oc)。

  • 您拥有集群 ID 值。

步骤
  1. 创建一个类似于以下内容的 YAML 文件。此步骤使用<cluster_resource_file>.yaml作为示例文件名。

    apiVersion: cluster.x-k8s.io/v1beta1
    kind: Cluster
    metadata:
      name: <cluster_name> (1)
      namespace: openshift-cluster-api
    spec:
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: <infrastructure_kind> (2)
        name: <cluster_name>
        namespace: openshift-cluster-api
    1 将集群 ID 指定为集群的名称。
    2 指定集群的基础架构类型。以下值为有效值
    • AWSCluster:集群运行在 Amazon Web Services (AWS) 上。

    • GCPCluster:集群运行在 Google Cloud Platform (GCP) 上。

    • VSphereCluster:集群运行在 VMware vSphere 上。

  2. 运行以下命令创建集群 CR

    $ oc create -f <cluster_resource_file>.yaml
验证
  • 运行以下命令确认集群 CR 是否存在

    $ oc get cluster
    示例输出
    NAME             PHASE          AGE    VERSION
    <cluster_name>   Provisioning   4h6m

    PHASE的值为Provisioned时,集群资源已准备就绪。

其他资源

创建集群 API 基础架构资源

您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建特定于提供商的基础架构资源。

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您已启用集群 API 的使用。

  • 您可以使用具有 cluster-admin 权限的帐户访问集群。

  • 您已安装 OpenShift CLI (oc)。

  • 您拥有集群 ID 值。

  • 您已创建并应用了集群资源。

步骤
  1. 创建一个类似于以下内容的 YAML 文件。此步骤使用<infrastructure_resource_file>.yaml作为示例文件名。

    apiVersion: infrastructure.cluster.x-k8s.io/<version> (1)
    kind: <infrastructure_kind> (2)
    metadata:
      name: <cluster_name> (3)
      namespace: openshift-cluster-api
    spec: (4)
    1 apiVersion 根据平台而异。更多信息,请参阅您提供商的 Cluster API 基础设施资源 YAML 示例。以下值为有效值
    • infrastructure.cluster.x-k8s.io/v1beta2:Amazon Web Services (AWS) 集群使用的版本。

    • infrastructure.cluster.x-k8s.io/v1beta1:Google Cloud Platform (GCP) 和 VMware vSphere 集群使用的版本。

    2 指定集群的基础设施类型。此值必须与您的平台值匹配。以下值为有效值
    • AWSCluster:集群运行在 AWS 上。

    • GCPCluster:集群运行在 GCP 上。

    • VSphereCluster:集群运行在 vSphere 上。

    3 指定集群的名称。
    4 指定您环境的详细信息。这些参数是特定于提供商的。更多信息,请参阅您提供商的 Cluster API 基础设施资源 YAML 示例。
  2. 运行以下命令创建基础设施 CR

    $ oc create -f <infrastructure_resource_file>.yaml
验证
  • 运行以下命令确认基础设施 CR 已创建

    $ oc get <infrastructure_kind>

    其中 <infrastructure_kind> 是与您的平台对应的值。

    示例输出
    NAME             CLUSTER          READY
    <cluster_name>   <cluster_name>   true

    此输出可能包含特定于您的云提供商的其他列。

创建 Cluster API 机器模板

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

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您已启用集群 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 指定机器模板类型。此值必须与您的平台值匹配。以下值为有效值
    • AWSMachineTemplate:集群运行在 Amazon Web Services (AWS) 上。

    • GCPMachineTemplate:集群运行在 Google Cloud Platform (GCP) 上。

    • VSphereMachineTemplate:集群运行在 VMware vSphere 上。

    2 指定机器模板的名称。
    3 指定您环境的详细信息。这些参数是特定于提供商的。更多信息,请参阅您提供商的 Cluster API 机器模板 YAML 示例。
  2. 运行以下命令创建机器模板 CR

    $ oc create -f <machine_template_resource_file>.yaml
验证
  • 运行以下命令确认机器模板 CR 已创建

    $ oc get <machine_template_kind>

    其中 <machine_template_kind> 是与您的平台对应的值。

    示例输出
    NAME              AGE
    <template_name>   77m

创建 Cluster API 计算机器集

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

先决条件
  • 您已部署 OpenShift Container Platform 集群。

  • 您已启用集群 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 指定计算机器集的名称。
    2 指定集群的名称。
    3 指定您环境的详细信息。这些参数是特定于提供商的。更多信息,请参阅您提供商的 Cluster API 计算机器集 YAML 示例。
  2. 运行以下命令创建计算机器集 CR

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

    $ oc get machineset -n openshift-cluster-api (1)
    1 指定 openshift-cluster-api 命名空间。
    示例输出
    NAME                 CLUSTER          REPLICAS   READY   AVAILABLE   AGE   VERSION
    <machine_set_name>   <cluster_name>   1          1       1           17m

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

验证
  • 要验证计算机器集是否根据您的所需配置创建机器,请通过运行以下命令查看集群中的机器和节点列表

    • 查看 Cluster API 机器列表

      $ oc get machine -n openshift-cluster-api (1)
      1 指定 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