搜索

4.3. 在 AWS 上使用多架构计算机器创建集群

download PDF

要使用多架构计算机器创建 AWS 集群,您必须首先使用多架构安装程序二进制文件创建一个单架构 AWS 安装程序置备集群。如需有关 AWS 安装的更多信息,请参阅使用自定义在 AWS 上安装集群

您还可以将带有单架构计算机器的当前集群迁移到使用多架构计算机器的集群。如需更多信息,请参阅使用多架构计算机器迁移到集群

创建多架构集群后,您可以将具有不同架构的节点添加到集群中。

4.3.1. 验证集群兼容性

在开始在集群中添加不同架构的计算节点前,您必须验证集群是否兼容多架构。

先决条件

  • 已安装 OpenShift CLI(oc)。

流程

  1. 登录 OpenShift CLI (oc)。
  2. 您可以运行以下命令来检查集群是否使用构架有效负载:

    $ oc adm release info -o jsonpath="{ .metadata.metadata}"

验证

  • 如果您看到以下输出,代表集群使用多架构有效负载:

    {
     "release.openshift.io/architecture": "multi",
     "url": "https://access.redhat.com/errata/<errata_version>"
    }

    然后,您可以开始在集群中添加多架构计算节点。

  • 如果您看到以下输出,代表集群没有使用多架构有效负载:

    {
     "url": "https://access.redhat.com/errata/<errata_version>"
    }
    重要

    要迁移集群以便集群支持多架构计算机器,请按照使用多架构计算机器迁移到集群的步骤进行操作。

4.3.2. 在 AWS 集群中添加多架构计算机器集

创建多架构集群后,您可以添加具有不同架构的节点。

您可以使用以下方法将不同架构的计算机器添加到多架构集群中:

  • 将 64 位 x86 计算机器添加到使用 64 位 ARM control plane 机器的集群中,且已经包含 64 位 ARM 计算机器。在这种情况下,64 位 x86 被视为辅助架构。
  • 将 64 位 ARM 计算机器添加到使用 64 位 x86 control plane 机器的集群,且已经包含 64 位 x86 计算机器。在这种情况下,64 位 ARM 被视为二级架构。
注意

在集群中添加二级架构节点前,建议安装 Multiarch Tuning Operator,并部署 ClusterPodPlacementConfig 自定义资源。如需更多信息,请参阅"使用 Multiarch Tuning Operator 在多架构集群上管理工作负载"。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您可以使用安装程序创建使用多架构安装程序二进制文件的 64 位 ARM 或 64 位 x86 单架构 AWS 集群。

流程

  1. 登录 OpenShift CLI (oc)。
  2. 创建 YAML 文件,并添加配置来创建计算机器集来控制集群中的 64 位 ARM 或 64 位 x86 计算节点。

    AWS 64 位 ARM 或 x86 计算节点的 MachineSet 对象示例

    apiVersion: machine.openshift.io/v1beta1
    kind: MachineSet
    metadata:
      labels:
        machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1
      name: <infrastructure_id>-aws-machine-set-0 2
      namespace: openshift-machine-api
    spec:
      replicas: 1
      selector:
        matchLabels:
          machine.openshift.io/cluster-api-cluster: <infrastructure_id> 3
          machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 4
      template:
        metadata:
          labels:
            machine.openshift.io/cluster-api-cluster: <infrastructure_id>
            machine.openshift.io/cluster-api-machine-role: <role> 5
            machine.openshift.io/cluster-api-machine-type: <role> 6
            machine.openshift.io/cluster-api-machineset: <infrastructure_id>-<role>-<zone> 7
        spec:
          metadata:
            labels:
              node-role.kubernetes.io/<role>: ""
          providerSpec:
            value:
              ami:
                id: ami-02a574449d4f4d280 8
              apiVersion: awsproviderconfig.openshift.io/v1beta1
              blockDevices:
                - ebs:
                    iops: 0
                    volumeSize: 120
                    volumeType: gp2
              credentialsSecret:
                name: aws-cloud-credentials
              deviceIndex: 0
              iamInstanceProfile:
                id: <infrastructure_id>-worker-profile 9
              instanceType: m6g.xlarge 10
              kind: AWSMachineProviderConfig
              placement:
                availabilityZone: us-east-1a 11
                region: <region> 12
              securityGroups:
                - filters:
                    - name: tag:Name
                      values:
                        - <infrastructure_id>-worker-sg 13
              subnet:
                filters:
                  - name: tag:Name
                    values:
                      - <infrastructure_id>-private-<zone>
              tags:
                - name: kubernetes.io/cluster/<infrastructure_id> 14
                  value: owned
                - name: <custom_tag_name>
                  value: <custom_tag_value>
              userDataSecret:
                name: worker-user-data

    1 2 3 9 13 14
    指定基于置备集群时所设置的集群 ID 的基础架构 ID。如果已安装 OpenShift CLI(oc)软件包,您可以通过运行以下命令来获取基础架构 ID:
    $ oc get -o jsonpath=‘{.status.infrastructureName}{“\n”}’ infrastructure cluster
    4 7
    指定基础架构 ID、角色节点标签和区域。
    5 6
    指定要添加的角色节点标签。
    8
    为节点的 AWS 区域指定 Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI)。RHCOS AMI 必须与机器架构兼容。
    $ oc get configmap/coreos-bootimages \
    	  -n openshift-machine-config-operator \
    	  -o jsonpath='{.data.stream}' | jq \
    	  -r '.architectures.<arch>.images.aws.regions."<region>".image'
    10
    指定与所选 AMI 的 CPU 架构一致的机器类型。如需更多信息,请参阅"为 AWS 64 位 ARM 测试的实例类型"
    11
    指定区。例如,us-east-1a。确保您选择的区有带有所需架构的机器。
    12
    指定区域。例如,us-east-1。确保您选择的区有带有所需架构的机器。
  3. 运行以下命令来创建计算机器集:

    $ oc create -f <file_name> 1
    1
    <file_name> 替换为计算机器设置配置 YAML 文件的名称。例如:aws-arm64-machine-set-0.yaml, 或 aws-amd64-machine-set-0.yaml

验证

  1. 运行以下命令,查看计算机器集列表:

    $ oc get machineset -n openshift-machine-api

    输出必须包含您创建的机器集。

    输出示例

    NAME                                                DESIRED  CURRENT  READY  AVAILABLE  AGE
    <infrastructure_id>-aws-machine-set-0                   2        2      2          2  10m

  2. 您可以运行以下命令来检查节点是否已就绪并可以调度:

    $ oc get nodes
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.