13.2. Cluster API 入门


重要

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

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

对于 Cluster API 技术预览,您必须创建 Cluster API 需要的主要资源。

13.2.1. 创建 Cluster API 主资源

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

13.2.1.1. 获取集群 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) 应用它们来手动创建 Cluster API 主资源。

13.2.1.2. 创建 Cluster API 集群资源

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

先决条件

  • 您已部署了 OpenShift Container Platform 集群。
  • 您已启用了 Cluster 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) 上运行。
  2. 运行以下命令来创建集群 CR:

    $ oc create -f <cluster_resource_file>.yaml

验证

  • 运行以下命令确认集群 CR 已存在:

    $ oc get cluster

    输出示例

    NAME             PHASE          AGE    VERSION
    <cluster_name>   Provisioning   4h6m

    PHASE 的值为 Provisioned 时,代表集群资源已就绪。

其他资源

13.2.1.3. 创建 Cluster API 基础架构资源

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

先决条件

  • 您已部署了 OpenShift Container Platform 集群。
  • 您已启用了 Cluster 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/v1beta1 :Google Cloud Platform (GCP) 集群使用的版本。
    • infrastructure.cluster.x-k8s.io/v1beta1 :Amazon Web Services (AWS) 集群使用的版本。
    2
    指定集群的基础架构类型。这个值必须与您的平台的值匹配。以下值有效:
    • AWSCluster:集群在 AWS 上运行。
    • GCPCluster:集群在 GCP 上运行。
    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

    注意

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

13.2.1.4. 创建 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
    指定机器模板类型。这个值必须与您的平台的值匹配。以下值有效:
    • AWSMachineTemplate:集群在 Amazon Web Services (AWS) 上运行。
    • gcpmachinetemplate:集群在 Google Cloud Platform (GCP) 上运行。
    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

13.2.1.5. 创建 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
    为计算机器设置指定一个名称。
    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 值会匹配。如果 compute 机器集不可用,请等待几分钟,然后再次运行命令。

验证

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

    • 查看 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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.