$ oc adm release info -o jsonpath="{ .metadata.metadata}"
要创建具有多架构计算机器的 Google Cloud Platform (GCP) 集群,您必须首先使用多架构安装程序二进制文件创建一个单架构 GCP 安装程序预配的集群。有关 AWS 安装的更多信息,请参见 在 GCP 上安装具有自定义设置的集群。
您还可以将当前使用单架构计算机的集群迁移到使用多架构计算机的集群。有关更多信息,请参见 迁移到具有多架构计算机的集群。
创建多架构集群后,您可以向集群添加具有不同架构的节点。
目前,GCP 上的 64 位 ARM 机器不支持安全启动 |
在开始向集群添加不同架构的计算节点之前,必须验证集群是否与多架构兼容。
您已安装 OpenShift CLI (oc
)。
登录到 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>"
}
要迁移集群以使其支持多架构计算机器,请按照 迁移到具有多架构计算机的集群 中的步骤操作。 |
创建多架构集群后,您可以添加具有不同架构的节点。
您可以通过以下方式将多架构计算机器添加到多架构集群
将 64 位 x86 计算机器添加到使用 64 位 ARM 控制平面机器并已包含 64 位 ARM 计算机器的集群。在这种情况下,64 位 x86 被视为辅助架构。
将 64 位 ARM 计算机器添加到使用 64 位 x86 控制平面机器并已包含 64 位 x86 计算机器的集群。在这种情况下,64 位 ARM 被视为辅助架构。
在向您的集群添加辅助架构节点之前,建议安装 Multiarch Tuning Operator 并部署一个 |
您已安装 OpenShift CLI (oc
)。
您使用安装程序创建了一个使用多架构安装程序二进制文件的 64 位 x86 或 64 位 ARM 单架构 GCP 集群。
登录到 OpenShift CLI (oc
)。
创建一个 YAML 文件,并添加配置以创建一个计算机器集,用于控制集群中的 64 位 ARM 或 64 位 x86 计算节点。
MachineSet
对象apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id> (1)
name: <infrastructure_id>-w-a
namespace: openshift-machine-api
spec:
replicas: 1
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: <infrastructure_id>
machine.openshift.io/cluster-api-machine-role: <role> (2)
machine.openshift.io/cluster-api-machine-type: <role>
machine.openshift.io/cluster-api-machineset: <infrastructure_id>-w-a
spec:
metadata:
labels:
node-role.kubernetes.io/<role>: ""
providerSpec:
value:
apiVersion: gcpprovider.openshift.io/v1beta1
canIPForward: false
credentialsSecret:
name: gcp-cloud-credentials
deletionProtection: false
disks:
- autoDelete: true
boot: true
image: <path_to_image> (3)
labels: null
sizeGb: 128
type: pd-ssd
gcpMetadata: (4)
- key: <custom_metadata_key>
value: <custom_metadata_value>
kind: GCPMachineProviderSpec
machineType: n1-standard-4 (5)
metadata:
creationTimestamp: null
networkInterfaces:
- network: <infrastructure_id>-network
subnetwork: <infrastructure_id>-worker-subnet
projectID: <project_name> (6)
region: us-central1 (7)
serviceAccounts:
- email: <infrastructure_id>-w@<project_name>.iam.gserviceaccount.com
scopes:
- https://www.googleapis.com/auth/cloud-platform
tags:
- <infrastructure_id>-worker
userDataSecret:
name: worker-user-data
zone: us-central1-a
1 | 指定基于您在预配集群时设置的集群 ID 的基础架构 ID。您可以运行以下命令获取基础架构 ID:
|
2 | 指定要添加的角色节点标签。 |
3 | 指定当前计算机器集中使用的镜像的路径。您需要项目的名称和镜像名称才能构建镜像路径。 要访问项目和镜像名称,请运行以下命令:
示例输出
使用输出中的
|
4 | 可选:以键值对 的形式指定自定义元数据。有关用例示例,请参阅 GCP 关于设置自定义元数据的文档。 |
5 | 指定与所选操作系统镜像的 CPU 架构一致的机器类型。更多信息,请参见“64 位 ARM 基础架构上 GCP 的已测试实例类型”。 |
6 | 指定您用于集群的 GCP 项目的名称。 |
7 | 指定区域。例如,us-central1 。确保您选择的区域拥有具有所需架构的机器。 |
运行以下命令创建计算机器集:
$ oc create -f <file_name> (1)
1 | 将<file_name> 替换为包含计算机器集配置的 YAML 文件的名称。例如:gcp-arm64-machine-set-0.yaml 或gcp-amd64-machine-set-0.yaml 。 |
运行以下命令查看计算机器集列表:
$ oc get machineset -n openshift-machine-api
输出必须包含您创建的机器集。
NAME DESIRED CURRENT READY AVAILABLE AGE
<infrastructure_id>-gcp-machine-set-0 2 2 2 2 10m
您可以通过运行以下命令检查节点是否已准备好并可调度:
$ oc get nodes