4.3. 在 AWS 上使用多架构计算机器创建集群
要使用多架构计算机器创建 AWS 集群,您必须首先使用多架构安装程序二进制文件创建一个单架构 AWS 安装程序置备集群。如需有关 AWS 安装的更多信息,请参阅使用自定义在 AWS 上安装集群。然后,您可以在 AWS 集群中添加 ARM64 计算机器集。
4.3.1. 验证集群兼容性
在开始在集群中添加不同架构的计算节点前,您必须验证集群是否兼容多架构。
先决条件
-
已安装 OpenShift CLI (
oc
)
流程
您可以运行以下命令来检查集群是否使用构架有效负载:
$ 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. 在集群中添加 ARM64 计算机器集
要使用多架构计算机器配置集群,您必须创建一个 AWS ARM64 计算机器集。这会在集群中添加 ARM64 计算节点,以便集群有多架构计算机器。
先决条件
-
已安装 OpenShift CLI(
oc
)。 - 您可以使用安装程序创建带有多架构安装程序二进制文件的 AMD64 单架构 AWS 集群。
流程
创建和修改计算机器集,这将控制集群中的 ARM64 计算节点。
$ oc create -f aws-arm64-machine-set-0.yaml
部署 ARM64 计算节点的 YAML 计算机器集示例
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: <infrastructure_id> 1 name: <infrastructure_id>-aws-arm64-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,您可以通过运行以下命令来获取基础架构 ID:
$ oc get -o jsonpath=‘{.status.infrastructureName}{“\n”}’ infrastructure cluster
- 4 7
- 指定基础架构 ID、角色节点标签和区域。
- 5 6
- 指定要添加的角色节点标签。
- 8
- 为 OpenShift Container Platform 节点的 AWS 区域指定支持 Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) 的 ARM64。
$ oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.<arch>.images.aws.regions."<region>".image'
- 10
- 指定支持 ARM64 的机器类型。如需更多信息,请参阅"为 AWS 64 位 ARM 测试实例类型"
- 11
- 指定区域,如
us-east-1a
。确保您选择的区域提供 64 位 ARM 机器。 - 12
- 指定区域,如
us-east-1
。确保您选择的区域提供 64 位 ARM 机器。
验证
输入以下命令来查看计算机器集列表:
$ oc get machineset -n openshift-machine-api
然后,您可以看到创建的 ARM64 机器集。
输出示例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-aws-arm64-machine-set-0 2 2 2 2 10m
您可以使用以下命令检查节点是否就绪并可访问:
$ oc get nodes