4.2. 在 Azure 上使用多架构计算机器创建集群
要使用多架构计算机器部署 Azure 集群,您必须首先创建一个使用多架构安装程序二进制文件的单架构 Azure 安装程序置备集群。如需有关 Azure 安装的更多信息,请参阅使用自定义在 Azure 上安装集群。然后,您可以在集群中添加 ARM64 计算机器集,以使用多架构计算机器创建集群。
以下流程描述了如何生成 ARM64 引导镜像并创建使用 ARM64 引导镜像的 Azure 计算机器集。这会在集群中添加 ARM64 计算节点,并部署您需要的 ARM64 虚拟机 (VM) 的数量。
4.2.1. 验证集群兼容性 复制链接链接已复制到粘贴板!
在开始在集群中添加不同架构的计算节点前,您必须验证集群是否兼容多架构。
先决条件
-
已安装 OpenShift CLI (
oc
)
流程
您可以运行以下命令来检查集群是否使用构架有效负载:
oc adm release info -o jsonpath="{ .metadata.metadata}"
$ oc adm release info -o jsonpath="{ .metadata.metadata}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
如果您看到以下输出,集群将使用多架构有效负载:
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,您可以开始在集群中添加多架构计算节点。
如果您看到以下输出,集群不使用多架构有效负载:
{ "url": "https://access.redhat.com/errata/<errata_version>" }
{ "url": "https://access.redhat.com/errata/<errata_version>" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要要迁移集群以便集群支持多架构计算机器,请按照使用多架构计算机器迁移到集群的步骤进行操作。
4.2.2. 使用 Azure 镜像 gallery 创建 ARM64 引导镜像 复制链接链接已复制到粘贴板!
以下流程描述了如何手动生成 ARM64 引导镜像。
先决条件
-
已安装 Azure CLI (
az
)。 - 已使用多架构安装程序二进制文件创建了单架构 Azure 安装程序置备集群。
流程
登录到您的 Azure 帐户:
az login
$ az login
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储帐户并将
arm64
虚拟硬盘 (VHD) 上传到您的存储帐户。OpenShift Container Platform 安装程序会创建一个资源组,但引导镜像也可以上传到名为资源组的自定义中:az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS
$ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
westus
对象是一个示例区域。
使用您生成的存储帐户创建存储容器:
az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}
$ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您必须使用 OpenShift Container Platform 安装程序 JSON 文件提取 URL 和
aarch64
VHD 名称:运行以下命令,提取
URL
字段并将其设置为RHCOS_VHD_ORIGIN_URL
:RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".url')
$ RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".url')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,提取
aarch64
VHD 名称并将其设置为BLOB_NAME
作为文件名:BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".release')-azure.aarch64.vhd
$ BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".release')-azure.aarch64.vhd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
生成共享访问令牌 (SAS) 令牌。通过以下命令,使用此令牌将 RHCOS VHD 上传到存储容器:
end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
$ end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`
$ sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RHCOS VHD 复制到存储容器中:
az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \ --source-uri "${RHCOS_VHD_ORIGIN_URL}" \ --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}
$ az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \ --source-uri "${RHCOS_VHD_ORIGIN_URL}" \ --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下命令检查复制过程的状态:
az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy
$ az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果 status 参数显示
success
对象,则复制过程已完成。
使用以下命令创建镜像 gallery:
az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}
$ az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用镜像 gallery 创建镜像定义。在以下示例中,
rhcos-arm64
是镜像定义的名称。az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --publisher RedHat --offer arm --sku arm64 --os-type linux --architecture Arm64 --hyper-v-generation V2
$ az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --publisher RedHat --offer arm --sku arm64 --os-type linux --architecture Arm64 --hyper-v-generation V2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要获取 VHD 的 URL,并将其设置为
RHCOS_VHD_URL
作为文件名称,请运行以下命令:RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)
$ RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
RHCOS_VHD_URL
文件、您的存储帐户、资源组和镜像 gallery 创建镜像版本。在以下示例中,1.0.0
是镜像版本。az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}
$ az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在生成您的
arm64
引导镜像。您可以使用以下命令访问镜像的 ID:az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0
$ az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下示例镜像 ID 在计算机器设置的
recourseID
参数中使用:resourceID
示例/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0
/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. 在集群中添加多架构计算机器集 复制链接链接已复制到粘贴板!
要在集群中添加 ARM64 计算节点,您必须创建一个使用 ARM64 引导镜像的 Azure 计算机器集。要在 Azure 上创建自己的自定义计算机器集,请参阅"创建 Azure 上的计算机器集"。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
使用以下命令,创建计算机器集并修改
resourceID
和vmSize
参数。此计算机器集将控制集群中的arm64
worker 节点:oc create -f arm64-machine-set-0.yaml
$ oc create -f arm64-machine-set-0.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
arm64
引导镜像的 YAML 计算机器集示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令验证新的 ARM64 机器是否正在运行:
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-arm64-machine-set-0 2 2 2 2 10m
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-arm64-machine-set-0 2 2 2 2 10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下命令检查节点是否就绪并可访问:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow