Azure Red Hat OpenShift 是一项托管式 OpenShift 服务,可用于快速部署和管理群集。 本文介绍如何使用 Azure CLI 或 Azure 门户部署 Azure Red Hat OpenShift 群集。
在您开始之前
确保使用 Azure CLI 2.67.0 或更高版本。 使用 az --version
查找已安装的 Azure CLI 版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
Azure Red Hat OpenShift 至少需要 44 个核心才能创建 OpenShift 群集。 新 Azure 订阅的默认 Azure 资源配额不满足此要求。 若要请求增加资源限制,请参阅增加 VM 系列 vCPU 配额。
44 个核心用于以下用途:
- 启动计算机:8 个核心
- 控制平面(主机):24 核
- 计算(工作机器):12 个核心
安装完成后,将删除启动计算机,群集总共使用 36 个核心。 有关详细信息,请参阅 在 Azure 上安装。
例如,若要查看最小支持的虚拟机系列 SKU 标准 DSv3 的当前订阅配额:
LOCATION=eastus
az vm list-usage -l $LOCATION \
--query "[?contains(name.value, 'standardDSv3Family')]" \
--output table
可以更新查询以检查 标准 DSv5 虚拟机大小,这是命令的默认虚拟机大小 az aro create
。
验证权限
本文将创建一个资源组,其中包含群集的虚拟网络。 需要具有参与者权限、用户访问管理员权限或所有者权限,直接在虚拟网络或在包含它的资源组或订阅上拥有这些权限。
您还需要足够的 Microsoft Entra 权限,包括租户的成员用户权限或带有角色 应用程序管理员 的来宾权限,以便工具可以代表您为群集创建应用程序和服务主体。 有关详细信息,请参阅 成员和来宾 ,并使用 Microsoft Entra ID 向用户分配管理员和非管理员角色。
注册资源提供程序
必须在 Azure 订阅中注册以下资源提供程序:
Microsoft.RedHatOpenShift
Microsoft.Compute
Microsoft.Storage
Microsoft.Authorization
如果有多个 Azure 订阅,请指定相关订阅 ID:
az account set --subscription <SUBSCRIPTION ID>
若要验证资源提供程序是否已注册,请使用具有资源提供程序名称的以下命令。 该命令检查 Microsoft.RedHatOpenShift
资源提供程序并返回值 Registered
或 NotRegistered
。
az provider list --query "[?namespace=='Microsoft.RedHatOpenShift'].registrationState" \
--output table
如果需要注册资源提供程序,请使用以下命令:
注册
Microsoft.RedHatOpenShift
资源提供程序:az provider register --namespace Microsoft.RedHatOpenShift --wait
注册
Microsoft.Compute
资源提供程序:az provider register --namespace Microsoft.Compute --wait
注册
Microsoft.Storage
资源提供程序:az provider register --namespace Microsoft.Storage --wait
注册
Microsoft.Authorization
资源提供程序:az provider register --namespace Microsoft.Authorization --wait
获取 Red Hat 拉取机密(可选)
注释
ARO 拉取机密不会更改 ARO Red Hat OpenShift 许可证的成本。
Red Hat 拉取机密使群集能够访问 Red Hat 容器注册表和 OperatorHub 中的其他内容(例如运算符)。 此步骤是可选的,但建议执行。 如果决定稍后添加拉取机密,请按照本指南操作。 即使拉取机密包含该字段,也会从你的机密中移除字段 cloud.openshift.com
。 此字段会启用一个额外的监视功能,该功能会将数据发送到 RedHat,因此默认情况下已禁用。 若要启用此功能,请参阅 “启用远程运行状况报告”。
导航到 Red Hat OpenShift 群集管理器门户并登录。
需要登录到 Red Hat 帐户,或使用业务电子邮件创建新的 Red Hat 帐户并接受条款和条件。
选择“下载拉取机密”,并下载要用于 ARO 群集的拉取机密。
将已保存的
pull-secret.txt
文件保存在安全的位置。 在每次创建群集时,如果需要创建包含 Red Hat 或认证合作伙伴的示例或操作员的群集,则会使用该文件。运行
az aro create
命令时,可以使用--pull-secret @pull-secret.txt
参数引用拉取机密。 从存储az aro create
文件的目录执行pull-secret.txt
。 否则,将@pull-secret.txt
替换为@/path/to/my/pull-secret.txt
。如果要复制拉取机密或在其他脚本中引用它,则应将拉取机密的格式设置为有效的 JSON 字符串。
为群集准备自定义域(可选)
运行 az aro create
命令时,可以使用 --___domain foo.example.com
参数为群集指定自定义域。
注释
虽然通过 Azure CLI 创建群集时添加域名是可选的,但在通过门户添加群集时,需要添加域名或用作 OpenShift 控制台和 API 服务器的自动生成 DNS 名称的一部分的前缀。 有关详细信息,请参阅本文的 Azure 门户 选项卡。
如果为群集提供自定义域,请注意以下几点:
- 创建群集后,必须在 DNS 服务器中为
A
指定的对象创建两条--___domain
DNS 记录:- api - 指向 API 服务器 IP 地址
- *.apps - 指向入口 IP 地址
- 创建群集后,通过执行
az aro show -n -g --query '{api:apiserverProfile.ip, ingress:ingressProfiles[0].ip}'
命令检索这些值。
- OpenShift 控制台可在类似于
https://console-openshift-console.apps.example.com
的 URL 中访问,而不是使用内置域https://console-openshift-console.apps.<random>.<___location>.aroapp.io
。 - 默认情况下,OpenShift 对自定义域
*.apps.example.com
上创建的所有路由使用自签名证书。 如果在连接到群集后选择使用自定义 DNS,则需要按照 OpenShift 文档为 入口控制器配置自定义 CA和为API 服务器配置自定义 CA。
创建包含两个空子网的虚拟网络
接下来,创建包含两个空子网的虚拟网络。 如果现有虚拟网络满足你的需求,则可以跳过此步骤。
有关网络和要求的信息,请参阅 Azure Red Hat OpenShift 的网络。
在执行
az
命令的 shell 环境中,需要设置以下变量。LOCATION=eastus # the ___location of your cluster RESOURCEGROUP=aro-rg # the name of the resource group where you want to create your cluster CLUSTER=cluster # the name of your cluster
创建资源组。
Azure 资源组是用于部署和管理 Azure 资源的逻辑组。 创建资源组时,系统会要求你指定一个位置。 此位置是资源组元数据的存储位置,如果在创建资源期间未指定另一个区域,则资源也会在 Azure 中运行。 使用 az group create 命令创建资源组。
注释
Azure Red Hat OpenShift 在可以创建 Azure 资源组的所有区域中都不可用。 有关支持 Azure Red Hat OpenShift 的位置的信息,请参阅可用区域。
az group create \ --name $RESOURCEGROUP \ --___location $LOCATION
以下示例输出显示已成功创建资源组:
{ "id": "/subscriptions/<guid>/resourceGroups/aro-rg", "___location": "eastus", "name": "aro-rg", "properties": { "provisioningState": "Succeeded" }, "type": "Microsoft.Resources/resourceGroups" }
创建虚拟网络。
运行 OpenShift 4 的 Azure Red Hat OpenShift 群集需要一个包含两个空子网(用于主节点和工作器节点)的虚拟网络。 可以为此群集创建新的虚拟网络,也可以使用现有的虚拟网络。
在之前创建的同一资源组中创建新的虚拟网络:
az network vnet create \ --resource-group $RESOURCEGROUP \ --name aro-vnet \ --address-prefixes 10.0.0.0/22
以下示例输出显示已成功创建了虚拟网络:
{ "newVNet": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/22" ] }, "dhcpOptions": { "dnsServers": [] }, "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet", "___location": "eastus", "name": "aro-vnet", "provisioningState": "Succeeded", "resourceGroup": "aro-rg", "type": "Microsoft.Network/virtualNetworks" } }
为主节点添加一个空的子网。
az network vnet subnet create \ --resource-group $RESOURCEGROUP \ --vnet-name aro-vnet \ --name master-subnet \ --address-prefixes 10.0.0.0/23
为工作节点添加空子网。
az network vnet subnet create \ --resource-group $RESOURCEGROUP \ --vnet-name aro-vnet \ --name worker-subnet \ --address-prefixes 10.0.2.0/23
创建群集
若要创建群集,请运行以下命令。 如果选择使用以下任一选项,请相应地修改命令:
- (可选)可以传递 Red Hat 拉取机密,这会支持群集访问 Red Hat 容器注册表以及其他内容。 将
--pull-secret @pull-secret.txt
参数添加到命令中。 - 或者,也可选择使用自定义域。 将
--___domain foo.example.com
参数添加到命令中,将foo.example.com
替换为你自己的自定义域。 - 默认的主虚拟机大小为
Standard D8s_v5
。 如果需要其他虚拟机大小,请使用--master-vm-size
参数。 例如,--master-vm-size Standard_D8s_v3
。 - 默认工作者虚拟机大小为
Standard D4s_v5
。 如果需要其他虚拟机大小,请使用--worker-vm-size
参数。 例如,--worker-vm-size Standard_D4s_v3
。 - 如果需要指定版本,请参阅 选择其他 ARO 版本。
- 有关创建群集的命令的详细信息,请参阅 az aro create。
注释
创建时可定义的最大工作器节点数为 50。 创建群集后,最多可以横向扩展到 250 个节点。
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet
运行此命令 az aro create
后,创建群集通常需要大约 45 分钟。
大规模 ARO 群集
如果需要部署具有 100 多个工作节点的 Azure Red Hat OpenShift 群集,请参阅 部署大型 Azure Red Hat OpenShift 群集。
选择其他 ARO 版本
创建群集时,可以选择使用特定版本的 ARO。 首先,使用 CLI 查询可用的 ARO 版本:
az aro get-versions --___location <region>
选择版本后,使用 --version
命令中的 az aro create
参数指定它:
az aro create \
--resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--version <x.y.z>
在您开始之前
登录到 Azure 门户。
注册 Microsoft.RedHatOpenShift
资源提供程序。 有关使用 Azure 门户注册资源提供程序的说明,请参阅注册资源提供程序。 还应验证是否已注册Microsoft.Compute
、Microsoft.Storage
和Microsoft.Authorization
。
Azure Red Hat OpenShift 至少需要 44 个核心才能创建和运行 OpenShift 群集。 新 Azure 订阅的默认 Azure 资源配额不满足此要求。 若要请求提高资源上限,请参阅标准配额:按 VM 系列提高上限中所述。
检查目前所支持的最小虚拟机系列 SKU 标准 DSv3 的订阅配额。 还可以检查 标准 DSv5 虚拟机大小的配额。
创建 Azure Red Hat OpenShift 群集
在 Azure 门户菜单或主页上,选择左上角三个水平条下的“所有服务”。
搜索并选择“Azure Red Hat OpenShift 群集”。
选择 创建。
在“基本信息”选项卡上,配置以下选项:
-
项目详细信息:
- 选择一个 Azure 订阅。
- 选择或创建一个 Azure 资源组,例如“myResourceGroup”。
-
实例详细信息:
- 选择 Azure Red Hat OpenShift 群集的区域。
- 输入“OpenShift 群集名称”,例如 myAROCluster。
- 输入“域名”。
- 选择主 VM 大小和辅助 VM 大小 。
- 选择 工作节点数 (要创建的工作节点数量)。
注释
域名字段预填充有一个随机字符串。 可以指定域名(如 example.com)或字符串/前缀(如 abc),它们用于 OpenShift 控制台和 API 服务器的自动生成 DNS 名称的一部分。 如果未指定资源组名称,则此前缀还用作创建用于托管群集 VM 的资源组名称的一部分。
-
项目详细信息:
在“身份验证”选项卡上,完成以下部分。
在“服务主体信息”下,选择“新建”或“现有”。 如果选择使用现有服务主体,请输入以下信息:
- 服务主体客户端 ID 是你的 appId。
- 服务主体客户端机密是服务主体的解密机密值。
注释
如果需要创建服务主体,请参阅为 Azure Red Hat OpenShift 群集创建和使用服务主体。
在拉取机密部分,输入Red Hat 拉取机密(集群的拉取机密的解密值)。 如果没有拉取机密,请将此字段留白。
在“网络”选项卡上,配置所需选项。
注释
运行 OpenShift 4 的 Azure Red Hat OpenShift 群集需要一个虚拟网络,其中包含两个空子网:一个用于控制平面,一个用于工作器节点。
在“标记”选项卡,添加标记来组织资源。
验证完成后,勾选“查看 + 创建”,然后勾选“创建”。
创建 Azure Red Hat OpenShift 群集大约需要 35 到 45 分钟。 部署完成后,通过以下任一方式导航到你的资源:
- 选择 转到资源。
- 浏览到 Azure Red Hat OpenShift 群集资源组,然后选择 Azure Red Hat OpenShift 资源。