6.2. 配置 Azure 帐户
在安装 OpenShift Container Platform 之前,您必须配置 Microsoft Azure 帐户。
所有通过公共端点提供的 Azure 资源均存在资源名称的限制,您无法创建使用某些名称的资源。如需 Azure 限制词语列表,请参阅 Azure 文档中的解决保留资源名称错误。
6.2.1. Azure 帐户限值
OpenShift Container Platform 集群使用诸多 Microsoft Azure 组件,默认的 Azure 订阅和服务限值、配额和约束会影响您安装 OpenShift Container Platform 集群的能力。
默认的限制因服务类别的不同(如 Free Trial 或 Pay-As-You-Go)以及系列的不同(如 Dv2 、F 或 G)而有所不同。例如,对于 Enterprise Agreement 订阅的默认限制是 350 个内核。
在 Azure 上安装默认集群前,请检查您的订阅类型的限制,如有必要,请提高帐户的配额限制。
下表总结了 Azure 组件,它们的限值会影响您安装和运行 OpenShift Container Platform 集群的能力。
组件 | 默认所需的组件数 | 默认 Azure 限值 | 描述 | ||||||
---|---|---|---|---|---|---|---|---|---|
vCPU | 40 | 每个区域 20 个 | 默认集群需要 40 个 vCPU,因此您必须提高帐户限值。 默认情况下,每个集群创建以下实例:
由于 Bootstrap 机器使用 若要部署更多 worker 节点、启用自动扩展、部署大型工作负载或使用不同的实例类型,您必须进一步提高帐户的 vCPU 限值,以确保集群可以部署您需要的机器。 | ||||||
OS Disk | 7 | 每个集群机器必须至少有 100 GB 存储和 300 IOPS。虽然这些值是最低支持的值,但对于具有密集型工作负载的生产环境集群和集群,建议使用更快的存储。有关优化性能存储的更多信息,请参阅"扩展和性能"部分中的页面标题为"优化存储"。 | |||||||
VNet | 1 | 每个区域 1000 个 | 每个默认集群都需要一个虚拟网络 (VNet),此网络包括两个子网。 | ||||||
网络接口 | 7 | 每个区域 65,536 个 | 每个默认集群都需要 7 个网络接口。如果您要创建更多机器或者您部署的工作负载要创建负载均衡器,则集群会使用更多的网络接口。 | ||||||
网络安全组 | 2 | 5000 | 每个集群为 VNet 中的每个子网创建网络安全组。默认集群为 control plane 和计算节点子网创建网络安全组:
| ||||||
网络负载均衡器 | 3 | 每个区域 1000 个 | 每个集群都会创建以下负载均衡器:
如果您的应用程序创建了更多的 Kubernetes | ||||||
公共 IP 地址 | 3 | 两个公共负载均衡器各自使用一个公共 IP 地址。bootstrap 机器也使用一个公共 IP 地址,以便您可以在安装期间通过 SSH 连接到该机器来进行故障排除。bootstrap 节点的 IP 地址仅在安装过程中使用。 | |||||||
专用 IP 地址 | 7 | 内部负载均衡器、三台 control plane 机器中的每一台以及三台 worker 机器中的每一台各自使用一个专用 IP 地址。 | |||||||
Spot VM vCPU(可选) | 0 如果配置 spot 虚拟机,您的集群必须为每个计算节点有两个 spot VM vCPU。 | 每个区域 20 个 | 这是可选组件。要使用 spot 虚拟机,您必须将 Azure 默认限值增加到集群中至少有两倍的计算节点数量。 注意 不建议将 spot 虚拟机用于 control plane 节点。 |
其他资源
- 优化存储。
6.2.2. 在 Azure 中配置公共 DNS 区
要安装 OpenShift Container Platform,您使用的 Microsoft Azure 帐户必须在帐户中具有一个专用的公共托管 DNS 区。此区域必须对域具有权威。此服务为集群外部连接提供集群 DNS 解析和名称查询。
流程
标识您的域或子域,以及注册商(registrar)。您可以转移现有的域和注册商,或通过 Azure 或其他来源获取新的域和注册商。
注意如需通过 Azure 购买域的更多信息,请参阅 Azure 文档中的购买 Azure 应用服务的自定义域名。
- 如果您使用现有的域和注册商,请将其 DNS 迁移到 Azure。请参阅 Azure 文档中的将活动 DNS 名称迁移到 Azure 应用服务。
为您的域配置 DNS。按照 Azure 文档中教程:在 Azure DNS 中托管域部分里的步骤,为您的域或子域创建一个公共托管区,提取新的权威名称服务器,并更新您的域使用的名称服务器的注册商记录。
使用合适的根域(如
openshiftcorp.com
)或子域(如clusters.openshiftcorp.com
)。- 如果您使用子域,请按照您公司的流程将其委派记录添加到父域。
6.2.3. 提高 Azure 帐户限值
要提高帐户限值,请在 Azure 门户上提交支持请求。
每一支持请求只能提高一种类型的配额。
流程
- 从 Azure 门户,点击左下角的 Help + suport。
点击 New support request,然后选择所需的值:
- 从 Issue type 列表中,选择 Service and subscription limits (quotas)。
- 从 Subscription 列表中,选择要修改的订阅。
- 从 Quota type 列表中,选择要提高的配额。例如,选择 Compute-VM (cores-vCPUs) subscription limit increases 以增加 vCPU 的数量,这是安装集群所必须的。
- 点击 Next: Solutions。
在 Problem Details 页面中,提供您要提高配额所需的信息:
- 点击 Provide details,然后在 Quota details 窗口中提供所需的详情。
- 在 SUPPORT METHOD 和 CONTACT INFO 部分中,提供问题严重性和您的联系详情。
- 点击 Next: Review + create,然后点击 Create。
6.2.4. 所需的 Azure 角色
OpenShift Container Platform 需要一个服务主体,以便可以管理 Microsoft Azure 资源。在创建服务主体前,请查看以下信息:
您的 Azure 帐户订阅必须具有以下角色:
-
User Access Administrator
-
贡献者
您的 Azure Active Directory (AD)必须具有以下权限:
-
"microsoft.directory/servicePrincipals/createAsOwner"
要在 Azure 门户上设置角色,请参阅 Azure 文档中的使用 RBAC 和 Azure 门户管理对 Azure 资源的访问。
6.2.5. 创建服务主体
由于 OpenShift Container Platform 及其安装程序使用 Azure Resource Manager 创建 Microsoft Azure 资源,因此您必须创建一个服务主体来代表它。
先决条件
- 安装或更新 Azure CLI。
- 您的 Azure 帐户具有您所用订阅所需的角色。
流程
登录 Azure CLI:
$ az login
如果您的 Azure 帐户使用订阅,请确定您使用正确的订阅:
查看可用帐户列表并记录您要用于集群的订阅的
tenantId
值:$ az account list --refresh
输出示例
[ { "cloudName": "AzureCloud", "id": "9bab1460-96d5-40b3-a78e-17b15e978a80", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "6057c7e9-b3ae-489d-a54e-de3f6bf6a8ee", "user": { "name": "you@example.com", "type": "user" } } ]
查看您的活跃帐户详情,确认
tenantId
值与您要使用的订阅匹配:$ az account show
输出示例
{ "environmentName": "AzureCloud", "id": "9bab1460-96d5-40b3-a78e-17b15e978a80", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "6057c7e9-b3ae-489d-a54e-de3f6bf6a8ee", 1 "user": { "name": "you@example.com", "type": "user" } }
- 1
- 确保
tenantId
参数的值是正确的订阅 ID。
如果您使用的订阅不正确,请更改活跃的订阅:
$ az account set -s <subscription_id> 1
- 1
- 指定订阅 ID。
验证订阅 ID 更新:
$ az account show
输出示例
{ "environmentName": "AzureCloud", "id": "33212d16-bdf6-45cb-b038-f6565b61edda", "isDefault": true, "name": "Subscription Name", "state": "Enabled", "tenantId": "8049c7e9-c3de-762d-a54e-dc3f6be6a7ee", "user": { "name": "you@example.com", "type": "user" } }
-
记录输出中的
tenantId
和id
参数值。OpenShift Container Platform 安装过程中需要这些值。 为您的帐户创建服务主体:
$ az ad sp create-for-rbac --role Contributor --name <service_principal> \ 1 --scopes /subscriptions/<subscription_id> 2 --years <years> 3
输出示例
Creating 'Contributor' role assignment under scope '/subscriptions/<subscription_id>' The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli { "appId": "ac461d78-bf4b-4387-ad16-7e32e328aec6", "displayName": <service_principal>", "password": "00000000-0000-0000-0000-000000000000", "tenantId": "8049c7e9-c3de-762d-a54e-dc3f6be6a7ee" }
-
记录前面输出中
appId
和password
参数的值。OpenShift Container Platform 安装过程中需要这些值。 运行以下命令来分配
User Access Administrator
角色:$ az role assignment create --role "User Access Administrator" \ --assignee-object-id $(az ad sp show --id <appId> --query id -o tsv) 1
- 1
- 为您的服务主体指定
appId
参数值。
其他资源
- 如需有关 CCO 模式的更多信息,请参阅 关于 Cloud Credential Operator。
6.2.6. 支持的 Azure Marketplace 区域
使用 Azure Marketplace 镜像安装集群可供购买在北美和 EMEA 中提供的客户提供服务。
虽然优惠必须在北美或 EMEA 处购买,但您可以将集群部署到 OpenShift Container Platform 支持的 Azure 公共分区中。
Azure Government 区域不支持使用 Azure Marketplace 镜像部署集群。
6.2.7. 支持的 Azure 区域
安装程序会根据您的订阅动态地生成可用的 Microsoft Azure 区域列表。
支持的 Azure 公共区域
-
australiacentral
(Australia Central) -
australiaeast
(Australia East) -
australiasoutheast
(Australia South East) -
brazilsouth
(Brazil South) -
canadacentral
(Canada Central) -
canadaeast
(Canada East) -
centralindia
(Central India) -
centralus
(Central US) -
eastasia
(East Asia) -
eastus
(East US) -
eastus2
(East US 2) -
francecentral
(France Central) -
germanywestcentral
(Germany West Central) -
japaneast
(Japan East) -
japanwest
(Japan West) -
koreacentral
(Korea Central) -
koreasouth
(Korea South) -
northcentralus
(North Central US) -
northeurope
(North Europe) -
norwayeast
(Norway East) -
qatarcentral
(Qatar Central) -
southafricanorth
(South Africa North) -
southcentralus
(South Central US) -
southeastasia
(Southeast Asia) -
southindia
(South India) -
swedencentral
(Sweden Central) -
switzerlandnorth
(Switzerland North) -
uaenorth
(UAE North) -
uksouth
(UK South) -
ukwest
(UK West) -
westcentralus
(West Central US) -
westeurope
(West Europe) -
westindia
(West India) -
westus
(West US) -
westus2
(West US 2) -
westus3
(West US 3)
支持的 Azure 政府区域
OpenShift Container Platform 4.6 添加了对以下 Microsoft Azure Government(MAG)区域的支持:
-
usgovtexas
(US Gov Texas) -
usgovvirginia
(US Gov Virginia)
您可以参阅 Azure 文档来了解与所有可用 MAG 区域的信息。其他 MAG 区域应该可以与 OpenShift Container Platform 一起工作,但并没有经过测试。
6.2.8. 后续步骤
- 在 Azure 上安装 OpenShift Container Platform 集群。您可以安装自定义集群或使用默认选项快速安装集群。