vCPU
在安装 OpenShift Container Platform 之前,必须配置 Microsoft Azure 帐户以满足安装要求。
所有可通过公共端点访问的 Azure 资源都受到资源名称限制,您无法创建使用某些术语的资源。有关 Azure 限制的术语列表,请参阅 Azure 文档中的解决保留的资源名称错误。 |
OpenShift Container Platform 集群使用许多 Microsoft Azure 组件,默认的Azure 订阅和服务限制、配额和约束会影响您安装 OpenShift Container Platform 集群的能力。
默认限制因优惠类别类型(例如免费试用版和按使用付费)和系列(例如 Dv2、F 和 G)而异。例如,企业协议订阅的默认值为 350 个核心。 在 Azure 上安装默认集群之前,请检查您的订阅类型的限制,如有必要,请增加您的帐户的配额限制。 |
下表总结了其限制可能会影响您安装和运行 OpenShift Container Platform 集群的 Azure 组件。
组件 | 默认情况下所需的组件数量 | 默认 Azure 限制 | 描述 | ||||||
---|---|---|---|---|---|---|---|---|---|
vCPU |
44 |
每个区域 20 个 |
默认集群需要 44 个 vCPU,因此您必须提高帐户限制。 默认情况下,每个集群创建以下实例:
由于引导和控制平面机器使用 `Standard_D8s_v3` 虚拟机(使用 8 个 vCPU),而计算机器使用 `Standard_D4s_v3` 虚拟机(使用 4 个 vCPU),因此默认集群需要 44 个 vCPU。引导节点虚拟机使用 8 个 vCPU,仅在安装期间使用。 要部署更多工作节点、启用自动缩放、部署大型工作负载或使用不同的实例类型,您必须进一步提高帐户的 vCPU 限制,以确保您的集群可以部署所需的机器。 |
||||||
操作系统磁盘 |
7 |
每个集群机器必须至少有 100 GB 的存储空间和 300 IOPS。虽然这些是最小支持值,但对于生产集群和具有密集工作负载的集群,建议使用更快的存储。有关优化存储性能的更多信息,请参阅“可扩展性和性能”部分中标题为“优化存储”的页面。 |
|||||||
虚拟网络 (VNet) |
1 |
每个区域 1000 个 |
每个默认集群需要一个虚拟网络 (VNet),其中包含两个子网。 |
||||||
网络接口 |
7 |
每个区域 65,536 个 |
每个默认集群需要七个网络接口。如果您创建更多机器或已部署的工作负载创建负载均衡器,您的集群将使用更多网络接口。 |
||||||
网络安全组 |
2 |
5000 |
每个集群为 VNet 中的每个子网创建网络安全组。默认集群为控制平面和计算节点子网创建网络安全组。
|
||||||
网络负载均衡器 |
3 |
每个区域 1000 个 |
每个集群创建以下负载均衡器
如果您的应用程序创建更多 Kubernetes `LoadBalancer` 服务对象,您的集群将使用更多负载均衡器。 |
||||||
公共 IP 地址 |
3 |
两个公共负载均衡器中的每一个都使用一个公共 IP 地址。引导机器也使用一个公共 IP 地址,以便您可以通过 SSH 连接到该机器以在安装过程中排除故障。引导节点的 IP 地址仅在安装期间使用。 |
|||||||
私有 IP 地址 |
7 |
内部负载均衡器、三台控制平面机器中的每一台以及三台工作机器中的每一台都使用一个私有 IP 地址。 |
|||||||
抢占式虚拟机 vCPU(可选) |
0 如果您配置抢占式虚拟机,则您的集群必须为每个计算节点提供两个抢占式虚拟机 vCPU。 |
每个区域 20 个 |
这是一个可选组件。要使用抢占式虚拟机,您必须将 Azure 默认限制提高到至少集群中计算节点数量的两倍。
|
优化存储.
要安装 OpenShift Container Platform,您使用的 Microsoft Azure 帐户必须拥有一个专用的公共托管 DNS 区域。此区域必须是该域的权威区域。此服务为与集群的外部连接提供集群 DNS 解析和名称查找。
确定您的域名或子域名以及注册机构。您可以转移现有的域名和注册机构,或者通过 Azure 或其他来源获取新的域名和注册机构。
有关通过 Azure 购买域名的更多信息,请参阅 Azure 文档中的为 Azure 应用服务购买自定义域名。 |
如果您使用的是现有的域名和注册机构,请将其 DNS 迁移到 Azure。请参阅 Azure 文档中的将活动 DNS 名称迁移到 Azure 应用服务。
配置您的域的 DNS。请按照 Azure 文档中的教程:在 Azure DNS 中托管您的域名中的步骤操作,为您的域名或子域名创建一个公共托管区域,提取新的权威名称服务器,并更新您的域名使用的名称服务器的注册机构记录。
使用合适的根域名,例如openshiftcorp.com
,或子域名,例如clusters.openshiftcorp.com
。
如果您使用子域名,请按照您公司的规程将委派记录添加到父域名。
要提高帐户限制,请在 Azure 门户上提交支持请求。
每次支持请求只能提高一种配额类型。 |
在 Azure 门户中,单击左下角的**帮助 + 支持**。
单击**新建支持请求**,然后选择所需的值。
在**问题类型**列表中,选择**服务和订阅限制(配额)**。
在**订阅**列表中,选择要修改的订阅。
在**配额类型**列表中,选择要提高的配额。例如,选择**计算-VM(核心-vCPU)订阅限制增加**以增加 vCPU 的数量,这是安装集群所需的。
单击**下一步:解决方案**。
在**问题详细信息**页面上,提供配额增加所需的信息。
单击**提供详细信息**,并在**配额详细信息**窗口中提供所需详细信息。
在“支持方法”和“联系信息”部分,提供问题严重程度和您的联系方式。
单击**下一步:查看 + 创建**,然后单击**创建**。
安装程序需要与您的 Azure 帐户关联的订阅和租户 ID。您可以使用 Azure CLI 收集此信息。
您已安装或更新了Azure CLI。
通过运行以下命令登录到 Azure CLI:
$ az login
确保您正在使用正确的订阅。
通过运行以下命令查看可用订阅的列表:
$ az account list --refresh
[
{
"cloudName": "AzureCloud",
"id": "8xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"name": "Subscription Name 1",
"state": "Enabled",
"tenantId": "6xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "[email protected]",
"type": "user"
}
},
{
"cloudName": "AzureCloud",
"id": "9xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": false,
"name": "Subscription Name 2",
"state": "Enabled",
"tenantId": "7xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "[email protected]",
"type": "user"
}
}
]
通过运行以下命令查看活动帐户的详细信息,并确认这是您要使用的订阅:
$ az account show
{
"environmentName": "AzureCloud",
"id": "8xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"name": "Subscription Name 1",
"state": "Enabled",
"tenantId": "6xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "[email protected]",
"type": "user"
}
}
如果您没有使用正确的订阅:
通过运行以下命令更改活动订阅:
$ az account set -s <subscription_id>
通过运行以下命令验证您是否正在使用所需的订阅:
$ az account show
{
"environmentName": "AzureCloud",
"id": "9xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"name": "Subscription Name 2",
"state": "Enabled",
"tenantId": "7xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "[email protected]",
"type": "user"
}
}
记录输出中的id
和tenantId
参数值。安装 OpenShift Container Platform 集群需要这些值。
OpenShift Container Platform 集群需要一个 Azure 标识来创建和管理 Azure 资源。因此,您需要以下其中一种类型的标识才能完成安装:
服务主体
系统分配的托管标识
用户分配的托管标识
OpenShift Container Platform 集群需要一个 Azure 标识来创建和管理 Azure 资源。在创建标识之前,请验证您的环境是否满足以下要求:
用于创建标识的 Azure 帐户被分配了用户访问管理员
和参与者
角色。创建以下内容时需要这些角色:
服务主体或用户分配的托管标识。
在虚拟机上启用系统分配的托管标识。
如果您要使用服务主体来完成安装,请验证用于创建标识的 Azure 帐户是否在 Microsoft Entra ID 中被分配了microsoft.directory/servicePrincipals/createAsOwner
权限。
要在 Azure 门户上设置角色,请参阅 Azure 文档中的使用 RBAC 和 Azure 门户管理对 Azure 资源的访问。
安装程序需要访问具有必要权限的 Azure 服务主体或托管标识,才能部署集群并维护其日常操作。必须向与标识关联的 Azure 订阅授予这些权限。
您可以选择以下选项:
您可以为标识分配参与者
和用户访问管理员
角色。分配这些角色是授予所有必需权限的最快方法。
有关分配角色的更多信息,请参阅 Azure 文档中有关使用 Azure 门户管理对 Azure 资源的访问的内容。
如果贵组织的安全策略需要更严格的权限集,您可以创建一个具有必要权限的自定义角色。
在 Microsoft Azure 上创建 OpenShift Container Platform 集群需要以下权限。
Microsoft.Authorization/policies/audit/action
Microsoft.Authorization/policies/auditIfNotExists/action
Microsoft.Authorization/roleAssignments/read
Microsoft.Authorization/roleAssignments/write
Microsoft.Compute/availabilitySets/read
Microsoft.Compute/availabilitySets/write
Microsoft.Compute/disks/beginGetAccess/action
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/galleries/images/read
Microsoft.Compute/galleries/images/versions/read
Microsoft.Compute/galleries/images/versions/write
Microsoft.Compute/galleries/images/write
Microsoft.Compute/galleries/read
Microsoft.Compute/galleries/write
Microsoft.Compute/snapshots/read
Microsoft.Compute/snapshots/write
Microsoft.Compute/snapshots/delete
Microsoft.Compute/virtualMachines/delete
Microsoft.Compute/virtualMachines/powerOff/action
Microsoft.Compute/virtualMachines/read
Microsoft.Compute/virtualMachines/write
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Microsoft.ManagedIdentity/userAssignedIdentities/read
Microsoft.ManagedIdentity/userAssignedIdentities/write
Microsoft.Network/dnsZones/A/write
Microsoft.Network/dnsZones/CNAME/write
Microsoft.Network/dnszones/CNAME/read
Microsoft.Network/dnszones/read
Microsoft.Network/loadBalancers/backendAddressPools/join/action
Microsoft.Network/loadBalancers/backendAddressPools/read
Microsoft.Network/loadBalancers/backendAddressPools/write
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Microsoft.Network/loadBalancers/inboundNatRules/read
Microsoft.Network/loadBalancers/inboundNatRules/write
Microsoft.Network/loadBalancers/inboundNatRules/join/action
Microsoft.Network/loadBalancers/inboundNatRules/delete
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/write
Microsoft.Network/routeTables/join/action
Microsoft.Network/networkInterfaces/delete
Microsoft.Network/networkInterfaces/join/action
Microsoft.Network/networkInterfaces/read
Microsoft.Network/networkInterfaces/write
Microsoft.Network/networkSecurityGroups/join/action
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/securityRules/delete
Microsoft.Network/networkSecurityGroups/securityRules/read
Microsoft.Network/networkSecurityGroups/securityRules/write
Microsoft.Network/networkSecurityGroups/write
Microsoft.Network/privateDnsZones/A/read
Microsoft.Network/privateDnsZones/A/write
Microsoft.Network/privateDnsZones/A/delete
Microsoft.Network/privateDnsZones/SOA/read
Microsoft.Network/privateDnsZones/read
Microsoft.Network/privateDnsZones/virtualNetworkLinks/read
Microsoft.Network/privateDnsZones/virtualNetworkLinks/write
Microsoft.Network/privateDnsZones/write
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/publicIPAddresses/join/action
Microsoft.Network/publicIPAddresses/read
Microsoft.Network/publicIPAddresses/write
Microsoft.Network/virtualNetworks/join/action
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/write
Microsoft.Network/virtualNetworks/write
在 Azure 上创建私有 OpenShift Container Platform 集群不需要以下权限。
|
Microsoft.Resourcehealth/healthevent/Activated/action
Microsoft.Resourcehealth/healthevent/InProgress/action
Microsoft.Resourcehealth/healthevent/Pending/action
Microsoft.Resourcehealth/healthevent/Resolved/action
Microsoft.Resourcehealth/healthevent/Updated/action
Microsoft.Resources/subscriptions/resourceGroups/read
Microsoft.Resources/subscriptions/resourcegroups/write
Microsoft.Resources/tags/write
Microsoft.Storage/storageAccounts/blobServices/read
Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/fileServices/read
Microsoft.Storage/storageAccounts/fileServices/shares/read
Microsoft.Storage/storageAccounts/fileServices/shares/write
Microsoft.Storage/storageAccounts/fileServices/shares/delete
Microsoft.Storage/storageAccounts/listKeys/action
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/write
Microsoft.Network/privateEndpoints/write
Microsoft.Network/privateEndpoints/read
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/write
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/read
Microsoft.Network/privateDnsZones/join/action
Microsoft.Storage/storageAccounts/PrivateEndpointConnectionsApproval/action
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write
Microsoft.Compute/availabilitySets/delete
Microsoft.Compute/images/read
Microsoft.Compute/images/write
Microsoft.Compute/images/delete
Microsoft.Compute/diskEncryptionSets/read
Microsoft.Compute/diskEncryptionSets/write
Microsoft.Compute/diskEncryptionSets/delete
Microsoft.KeyVault/vaults/read
Microsoft.KeyVault/vaults/write
Microsoft.KeyVault/vaults/delete
Microsoft.KeyVault/vaults/deploy/action
Microsoft.KeyVault/vaults/keys/read
Microsoft.KeyVault/vaults/keys/write
Microsoft.Features/providers/features/register/action
Microsoft.Network/natGateways/read
Microsoft.Network/natGateways/write
Microsoft.Network/natGateways/join/action
Microsoft.Network/natGateways/read
Microsoft.Network/natGateways/write
Microsoft.Network/azureFirewalls/applicationRuleCollections/write
Microsoft.Network/azureFirewalls/read
Microsoft.Network/azureFirewalls/write
Microsoft.Network/routeTables/join/action
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/write
Microsoft.Network/virtualNetworks/peer/action
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
Microsoft.Compute/virtualMachines/retrieveBootDiagnosticsData/action
删除 Microsoft Azure 上的 OpenShift Container Platform 集群需要以下权限。您可以使用相同的权限删除 Azure 上的私有 OpenShift Container Platform 集群。
Microsoft.Authorization/roleAssignments/delete
Microsoft.Compute/disks/delete
Microsoft.Compute/galleries/delete
Microsoft.Compute/galleries/images/delete
Microsoft.Compute/galleries/images/versions/delete
Microsoft.Compute/virtualMachines/delete
Microsoft.ManagedIdentity/userAssignedIdentities/delete
Microsoft.Network/dnszones/read
Microsoft.Network/dnsZones/A/read
Microsoft.Network/dnsZones/A/delete
Microsoft.Network/dnsZones/CNAME/read
Microsoft.Network/dnsZones/CNAME/delete
Microsoft.Network/loadBalancers/delete
Microsoft.Network/networkInterfaces/delete
Microsoft.Network/networkSecurityGroups/delete
Microsoft.Network/privateDnsZones/read
Microsoft.Network/privateDnsZones/A/read
Microsoft.Network/privateDnsZones/delete
Microsoft.Network/privateDnsZones/virtualNetworkLinks/delete
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/virtualNetworks/delete
删除 Azure 上的私有 OpenShift Container Platform 集群不需要以下权限。
|
Microsoft.Resourcehealth/healthevent/Activated/action
Microsoft.Resourcehealth/healthevent/Resolved/action
Microsoft.Resourcehealth/healthevent/Updated/action
Microsoft.Resources/subscriptions/resourcegroups/delete
Microsoft.Storage/storageAccounts/delete
Microsoft.Storage/storageAccounts/listKeys/action
要在 Azure 上安装 OpenShift Container Platform,必须将权限范围限定为您的订阅。稍后,您可以将这些权限的范围重新限定为安装程序创建的资源组。如果公共 DNS 区域存在于不同的资源组中,则网络 DNS 区域相关的权限必须始终应用于您的订阅。默认情况下,OpenShift Container Platform 安装程序会为 Azure 标识分配 `参与者` 角色。 删除 OpenShift Container Platform 集群时,您可以将所有权限的范围限定为您的订阅。 |
安装程序需要 Azure 标识才能完成安装。您可以使用系统分配的或用户分配的托管标识。
如果您无法使用托管标识,您可以使用服务主体。
如果您使用的是系统分配的托管标识,请在您将运行安装程序的虚拟机上启用它。
如果您使用的是用户分配的托管标识
将其分配给您将运行安装程序的虚拟机。
记录其客户端 ID。安装集群时需要此值。
有关查看用户分配的托管标识详细信息的更多信息,请参阅 Microsoft Azure 文档,了解 列出用户分配的托管标识。
验证托管标识是否已分配所需的权限。
安装程序需要 Azure 标识才能完成安装。您可以使用服务主体。
如果您无法使用服务主体,您可以使用托管标识。
您已安装或更新了Azure CLI。
您拥有一个 Azure 订阅 ID。
如果您不打算为服务主体分配贡献者
和用户管理员访问
角色,则您已创建具有所需 Azure 权限的自定义角色。
通过运行以下命令创建您的帐户的服务主体
$ az ad sp create-for-rbac --role <role_name> \(1)
--name <service_principal> \(2)
--scopes /subscriptions/<subscription_id> (3)
1 | 定义角色名称。您可以使用贡献者 角色,也可以指定包含必要权限的自定义角色。 |
2 | 定义服务主体名称。 |
3 | 指定订阅 ID。 |
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": "axxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": <service_principal>",
"password": "00000000-0000-0000-0000-000000000000",
"tenantId": "8xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
记录输出中appId
和password
参数的值。安装集群时需要这些值。
如果您将贡献者
角色应用于您的服务主体,请通过运行以下命令分配用户管理员访问
角色
$ az role assignment create --role "User Access Administrator" \
--assignee-object-id $(az ad sp show --id <appId> --query id -o tsv) (1)
--scope /subscriptions/<subscription_id> (2)
1 | 指定您服务主体的appId 参数值。 |
2 | 指定订阅 ID。 |
使用 Azure 市场映像安装集群可用于在北美和 EMEA 购买该产品的客户。
虽然必须在北美或 EMEA 购买产品,但您可以将集群部署到 OpenShift Container Platform 支持的任何 Azure 公共分区。
对于 Azure Government 区域,不支持使用 Azure 市场映像部署集群。 |
安装程序会根据您的订阅动态生成可用的 Microsoft Azure 区域列表。
australiacentral
(澳大利亚中部)
australiaeast
(澳大利亚东部)
australiasoutheast
(澳大利亚东南部)
brazilsouth
(巴西南部)
canadacentral
(加拿大中部)
canadaeast
(加拿大东部)
centralindia
(印度中部)
centralus
(美国中部)
eastasia
(东亚)
eastus
(美国东部)
eastus2
(美国东部 2)
francecentral
(法国中部)
germanywestcentral
(德国西部中部)
israelcentral
(以色列中部)
italynorth
(意大利北部)
japaneast
(日本东部)
japanwest
(日本西部)
koreacentral
(韩国中部)
koreasouth
(韩国南部)
mexicocentral
(墨西哥中部)
northcentralus
(美国中北部)
northeurope
(北欧)
norwayeast
(挪威东部)
polandcentral
(波兰中部)
qatarcentral
(卡塔尔中部)
southafricanorth
(南非北部)
southcentralus
(美国中南部)
southeastasia
(东南亚)
southindia
(印度南部)
spaincentral
(西班牙中部)
swedencentral
(瑞典中部)
switzerlandnorth
(瑞士北部)
uaenorth
(阿联酋北部)
uksouth
(英国南部)
ukwest
(英国西部)
westcentralus
(美国中西部)
westeurope
(西欧)
westindia
(印度西部)
westus
(美国西部)
westus2
(美国西部 2)
westus3
(美国西部 3)
在 OpenShift Container Platform 4.6 版本中添加了对以下 Microsoft Azure Government (MAG) 区域的支持
usgovtexas
(美国政府德克萨斯州)
usgovvirginia
(美国政府弗吉尼亚州)
您可以在Azure 文档中参考所有可用的 MAG 区域。预计其他提供的 MAG 区域可以与 OpenShift Container Platform 一起使用,但尚未经过测试。
在 Azure 上安装 OpenShift Container Platform 集群。您可以安装自定义集群或快速安装具有默认选项的集群。