11.3. Azure プロジェクトの設定
OpenShift Container Platform をインストールする前に、これをホストするために Azure プロジェクトを設定する必要があります。
パブリックエンドポイントで利用可能なすべての Azure リソースはリソース名の制限を受けるため、特定の用語を使用するリソースを作成することはできません。Azure が制限する用語のリストは、Azure ドキュメントの 予約されたリソース名のエラーを解決する を参照してください。
11.3.1. Azure アカウントの制限 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターは数多くの Microsoft Azure コンポーネントを使用し、デフォルトの Azure サブスクリプションおよびサービス制限、クォータ、および制約 は、OpenShift Container Platform クラスターをインストールする機能に影響を与えます。
デフォルトの制限は、Free Trial や Pay-As-You-Go、および DV2、F、および G などのシリーズといったカテゴリータイプによって異なります。たとえば、Enterprise Agreement サブスクリプションのデフォルトは 350 コアです。
サブスクリプションタイプの制限を確認し、必要に応じて、デフォルトのクラスターを Azure にインストールする前にアカウントのクォータ制限を引き上げます。
以下の表は、OpenShift Container Platform クラスターのインストールおよび実行機能に影響を与える可能性のある Azure コンポーネントの制限を要約しています。
| コンポーネント | デフォルトで必要なコンポーネントの数 | デフォルトの Azure 制限 | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| vCPU | 40 | リージョンごとに 20 | デフォルトのクラスターには 40 の vCPU が必要であるため、アカウントの上限を引き上げる必要があります。 デフォルトで、各クラスターは以下のインスタンスを作成します。
ブートストラップマシンは 4 vCPU を使用する 追加のワーカーノードをデプロイし、自動スケーリングを有効にし、大規模なワークロードをデプロイするか、異なるインスタンスタイプを使用するには、アカウントの vCPU 制限をさらに引き上げ、クラスターが必要なマシンをデプロイできるようにする必要があります。 | ||||||
| OS ディスク | 7 | 各クラスターマシンには、少なくとも 100 GB のストレージと 300 IOPS が必要です。これらはサポートされる最小の値ですが、実稼働クラスターおよび高負荷ワークロードがあるクラスターには、さらに高速なストレージが推奨されます。パフォーマンスを向上させるためのストレージ最適化の詳細は、「スケーラビリティーとパフォーマンス」セクションの「ストレージの最適化」を参照してください。 | |||||||
| VNet | 1 | リージョンごとに 1000 | 各デフォルトクラスターには、2 つのサブネットを含む 1 つの Virtual Network (VNet) が必要です。 | ||||||
| ネットワークインターフェイス | 7 | リージョンごとに 65,536 | 各デフォルトクラスターには、7 つのネットワークインターフェイスが必要です。さらに多くのマシンを作成したり、デプロイしたワークロードでロードバランサーを作成する場合、クラスターは追加のネットワークインターフェイスを使用します。 | ||||||
| ネットワークセキュリティーグループ | 2 | 5000 | 各クラスターは VNet の各サブネットにネットワークセキュリティーグループを作成します。デフォルトのクラスターは、コントロールプレーンおよびコンピュートノードのサブネットにネットワークセキュリティーグループを作成します。
| ||||||
| ネットワークロードバランサー | 3 | リージョンごとに 1000 | 各クラスターは以下の ロードバランサー を作成します。
アプリケーションが追加の Kubernetes | ||||||
| パブリック IP アドレス | 3 | 2 つのパブリックロードバランサーのそれぞれはパブリック IP アドレスを使用します。ブートストラップマシンは、インストール時のトラブルシューティングのためにマシンに SSH を実行できるようにパブリック IP アドレスも使用します。ブートストラップノードの IP アドレスは、インストール時にのみ使用されます。 | |||||||
| プライベート IP アドレス | 7 | 内部ロードバランサー、3 つのコントロールプレーンマシンのそれぞれ、および 3 つのワーカーマシンのそれぞれはプライベート IP アドレスを使用します。 | |||||||
| スポット VM vCPU (オプション) | 0 スポット VM を設定する場合には、クラスターのコンピュートノードごとにスポット VM vCPU が 2 つ必要です。 | リージョンごとに 20 | これはオプションのコンポーネントです。スポット VM を使用するには、Azure のデフォルトの制限を最低でも、クラスター内のコンピュートノード数の 2 倍に増やす必要があります。 注記 コントロールプレーンノードにスポット VM を使用することは推奨しません。 |
11.3.2. Azure でのパブリック DNS ゾーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をインストールするには、使用する Microsoft Azure アカウントに、専用のパブリックホスト DNS ゾーンが必要になります。このゾーンはドメインに対する権威を持っている必要があります。このサービスは、クラスターへの外部接続のためのクラスター DNS 解決および名前検索を提供します。
手順
ドメイン、またはサブドメイン、およびレジストラーを特定します。既存のドメインおよびレジストラーを移行するか、Azure または別のソースから新規のものを取得できます。
注記Azure 経由でドメインを購入する方法の詳細は、Azure ドキュメントの Buy a custom domain name for Azure App Service を参照してください。
- 既存のドメインおよびレジストラーを使用している場合、その DNS を Azure に移行します。Azure ドキュメントの Migrate an active DNS name to Azure App Service を参照してください。
ドメインの DNS を設定します。Azure ドキュメントの Tutorial: Host your domain in Azure DNS の手順に従い、ドメインまたはサブドメインのパブリックホストゾーンを作成し、新規の権威ネームサーバーを抽出し、ドメインが使用するネームサーバーのレジストラーレコードを更新します。
openshiftcorp.comなどのルートドメインや、clusters.openshiftcorp.comなどのサブドメインを使用します。- サブドメインを使用する場合は、所属する会社の手順に従ってその委任レコードを親ドメインに追加します。
この DNS ゾーンの作成例 を参照し、Azure の DNS ソリューションを確認することができます。
11.3.3. Azure アカウント制限の拡張 リンクのコピーリンクがクリップボードにコピーされました!
アカウントの制限を引き上げるには、Azure ポータルでサポートをリクエストします。
サポートリクエストごとに 1 つの種類のクォータのみを増やすことができます。
手順
- Azure ポータルの左端で Help + support をクリックします。
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 and CONTACT INFO セクションに、問題の重大度および問い合わせ先の詳細を指定します。
- Next: Review + create をクリックしてから Create をクリックします。
11.3.4. 証明書署名要求の管理 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがプロビジョニングするインフラストラクチャーを使用する場合、クラスターの自動マシン管理へのアクセスは制限されるため、インストール後にクラスターの証明書署名要求 (CSR) のメカニズムを提供する必要があります。kube-controller-manager は kubelet クライアント CSR のみを承認します。machine-approver は、kubelet 認証情報を使用して要求されるサービング証明書の有効性を保証できません。適切なマシンがこの要求を発行したかどうかを確認できないためです。kubelet 提供証明書の要求の有効性を検証し、それらを承認する方法を判別し、実装する必要があります。
11.3.5. 必要な Azure ロール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform には、Microsoft Azure リソースを管理できるようにサービスプリンシパルが必要です。サービスプリンシパルを作成する前に、次の情報を確認してください。
Azure アカウントのサブスクリプションに、次のロールが必要です。
-
User Access Administrator -
コントリビューター
Azure Active Directory (AD) には、次の権限が必要です。
-
"microsoft.directory/servicePrincipals/createAsOwner"
Azure ポータルでロールを設定するには、Azure ドキュメントの Manage access to Azure resources using RBAC and the Azure portal を参照します。
11.3.6. ユーザーがプロビジョニングするインフラストラクチャーに必要な Azure アクセス許可 リンクのコピーリンクがクリップボードにコピーされました!
Contributor と User Access Administrator ロールをサービスプリンシパルに割り当てると、必要なすべてのアクセス許可が自動的に付与されます。
組織のセキュリティーポリシーで、より制限的なアクセス許可のセットが必要な場合は、必要なアクセス許可を持つ カスタムロール を作成できます。Microsoft Azure で OpenShift Container Platform クラスターを作成するには、以下のアクセス許可が必要です。
例11.1 承認リソースを作成するために必要な権限
-
Microsoft.Authorization/policies/audit/action -
Microsoft.Authorization/policies/auditIfNotExists/action -
Microsoft.Authorization/roleAssignments/read -
Microsoft.Authorization/roleAssignments/write
例11.2 コンピューティングリソースの作成に必要な権限
-
Microsoft.Compute/images/read -
Microsoft.Compute/images/write -
Microsoft.Compute/images/delete -
Microsoft.Compute/availabilitySets/read -
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.Compute/virtualMachines/deallocate/action
例11.3 ID 管理リソースを作成するために必要なアクセス許可
-
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action -
Microsoft.ManagedIdentity/userAssignedIdentities/read -
Microsoft.ManagedIdentity/userAssignedIdentities/write
例11.4 ネットワークリソースの作成に必要な権限
-
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/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
例11.5 リソースの健全性をチェックするために必要な権限
-
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
例11.6 リソースグループの作成に必要なアクセス許可
-
Microsoft.Resources/subscriptions/resourceGroups/read -
Microsoft.Resources/subscriptions/resourcegroups/write
例11.7 リソースタグの作成に必要なアクセス許可
-
Microsoft.Resources/tags/write
例11.8 ストレージリソースの作成に必要な権限
-
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
例11.9 デプロイメントの作成に必要な権限
-
Microsoft.Resources/deployments/read -
Microsoft.Resources/deployments/write -
Microsoft.Resources/deployments/validate/action -
Microsoft.Resources/deployments/operationstatuses/read
例11.10 コンピュートリソースを作成するためのオプションのアクセス許可
-
Microsoft.Compute/availabilitySets/delete -
Microsoft.Compute/availabilitySets/write
例11.11 Marketplace 仮想マシンリソースを作成するためのオプションのアクセス許可
-
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read -
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write
例11.12 ユーザー管理の暗号化を有効にするためのオプションのアクセス許可
-
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 Azure で OpenShift Container Platform クラスターを削除するには、以下のアクセス許可が必要です。
例11.13 承認リソースを削除するために必要な権限
-
Microsoft.Authorization/roleAssignments/delete
例11.14 コンピューティングリソースを削除するために必要な権限
-
Microsoft.Compute/disks/delete -
Microsoft.Compute/galleries/delete -
Microsoft.Compute/galleries/images/delete -
Microsoft.Compute/galleries/images/versions/delete -
Microsoft.Compute/virtualMachines/delete -
Microsoft.Compute/images/delete
例11.15 アイデンティティー管理リソースを削除するために必要な権限
-
Microsoft.ManagedIdentity/userAssignedIdentities/delete
例11.16 ネットワークリソースを削除するために必要な権限
-
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
例11.17 リソースの健全性をチェックするために必要な権限
-
Microsoft.Resourcehealth/healthevent/Activated/action -
Microsoft.Resourcehealth/healthevent/Resolved/action -
Microsoft.Resourcehealth/healthevent/Updated/action
例11.18 リソースグループを削除するために必要な権限
-
Microsoft.Resources/subscriptions/resourcegroups/delete
例11.19 ストレージリソースを削除するために必要な権限
-
Microsoft.Storage/storageAccounts/delete -
Microsoft.Storage/storageAccounts/listKeys/action
Azure に OpenShift Container Platform をインストールするには、リソースグループの作成に関連するアクセス許可をサブスクリプションに限定する必要があります。リソースグループが作成されたら、作成されたリソースグループに残りのアクセス許可のスコープを設定できます。パブリック DNS ゾーンが別のリソースグループに存在する場合は、ネットワーク DNS ゾーンに関連する権限を常にサブスクリプションに適用する必要があります。
OpenShift Container Platform クラスターを削除するときに、すべての権限をサブスクリプションに適用できます。
11.3.7. サービスプリンシパルの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform とそのインストールプログラムは Azure Resource Manager を使用して Microsoft Azure リソースを作成するため、それを表すサービスプリンシパルを作成する必要があります。
前提条件
手順
Azure CLI にログインします。
az login
$ az loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow Azure アカウントでサブスクリプションを使用している場合は、適切なサブスクリプションを使用していることを確認してください。
利用可能なアカウントの一覧を表示し、クラスターに使用するサブスクリプションの
tenantIdの値を記録します。az account list --refresh
$ az account list --refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクティブなアカウントの詳細を表示し、
tenantId値が使用するサブスクリプションと一致することを確認します。az account show
$ az account showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
tenantIdパラメーターの値が正しいサブスクリプション ID であることを確認してください。
適切なサブスクリプションを使用していない場合には、アクティブなサブスクリプションを変更します。
az account set -s <subscription_id>
$ az account set -s <subscription_id>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- サブスクリプション ID を指定します。
サブスクリプション ID の更新を確認します。
az account show
$ az account showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
出力から
tenantIdおよびidパラメーター値を記録します。OpenShift Container Platform のインストール時にこれらの値が必要になります。 アカウントのサービスプリンシパルを作成します。
az ad sp create-for-rbac --role <role_name> \ --name <service_principal> \ --scopes /subscriptions/<subscription_id>$ az ad sp create-for-rbac --role <role_name> \1 --name <service_principal> \2 --scopes /subscriptions/<subscription_id>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
直前の出力の
appIdおよびpasswordパラメーターの値を記録します。OpenShift Container Platform のインストール時にこれらの値が必要になります。 Contributorロールをサービスプリンシパルに適用した場合は、次のコマンドを実行してUser Administrator Accessロールを割り当てます。az role assignment create --role "User Access Administrator" \ --assignee-object-id $(az ad sp show --id <appId> --query id -o tsv)
$ az role assignment create --role "User Access Administrator" \ --assignee-object-id $(az ad sp show --id <appId> --query id -o tsv)1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- サービスプリンシパルの
appIdパラメーター値を指定します。
11.3.8. サポート対象の 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) -
israelcentral(Israel Central) -
italynorth(Italy North) -
japaneast(Japan East) -
japanwest(Japan West) -
koreacentral(Korea Central) -
koreasouth(Korea South) -
mexicocentral(Mexico Central) -
northcentralus(North Central US) -
northeurope(North Europe) -
norwayeast(Norway East) -
polandcentral(Poland Central) -
qatarcentral(Qatar Central) -
southafricanorth(South Africa North) -
southcentralus(South Central US) -
southeastasia(Southeast Asia) -
southindia(South India) -
swedencentral(スウェーデン中央) -
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 Government リージョン
以下の Microsoft Azure Government (MAG) リージョンのサポートが OpenShift Container Platform バージョン 4.6 に追加されています。
-
usgovtexas(US Gov Texas) -
usgovvirginia(US Gov Virginia)
Azure ドキュメント の利用可能なすべての MAG リージョンを参照できます。他の提供される MAG リージョンは OpenShift Container Platform で機能することが予想されますが、まだテストされていません。