1.8.3.4.2. Hive を AWS GovCloud にデプロイするように設定します。
AWS GovCloud でのクラスターの作成は、標準の AWS でクラスターを作成することとほぼ同じですが、AWS GovCloud でクラスターの AWS PrivateLink を準備するために追加の手順を実行する必要があります。
1.8.3.4.2.1. リソースおよびエンドポイントの VPC の作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件に記載されているように、ハブクラスターが含まれる VPC に加えて、2 つの VPC が必要です。VPC を作成する具体的な手順は、Amazon Web Services ドキュメントの VPC の作成 を参照してください。
- プライベートサブネットを使用してマネージドクラスターの VPC を作成します。
- プライベートサブネットを使用して、マネージドクラスターサービスエンドポイントの 1 つ以上の VPC を作成します。リージョンの各 VPC には 255 VPC エンドポイントの制限があるため、そのリージョン内の 255 を超えるクラスターをサポートするには、複数の VPC が必要です。
各 VPC について、リージョンのサポートされるすべてのアベイラビリティーゾーンにサブネットを作成します。コントローラーの要件があるため、各サブネットには少なくとも 255 以上の使用可能な IP アドレスが必要です。
以下の例は、
us-gov-east-1リージョンに 6 つのアベイラビリティーゾーンを持つ VPC のサブネットを設定する方法を示しています。vpc-1 (us-gov-east-1) : 10.0.0.0/20 subnet-11 (us-gov-east-1a): 10.0.0.0/23 subnet-12 (us-gov-east-1b): 10.0.2.0/23 subnet-13 (us-gov-east-1c): 10.0.4.0/23 subnet-12 (us-gov-east-1d): 10.0.8.0/23 subnet-12 (us-gov-east-1e): 10.0.10.0/23 subnet-12 (us-gov-east-1f): 10.0.12.0/2vpc-2 (us-gov-east-1) : 10.0.16.0/20 subnet-21 (us-gov-east-1a): 10.0.16.0/23 subnet-22 (us-gov-east-1b): 10.0.18.0/23 subnet-23 (us-gov-east-1c): 10.0.20.0/23 subnet-24 (us-gov-east-1d): 10.0.22.0/23 subnet-25 (us-gov-east-1e): 10.0.24.0/23 subnet-26 (us-gov-east-1f): 10.0.28.0/23- すべてのハブクラスター (ハブクラスター VPC) に、ピアリング、転送ゲートウェイ、およびすべての DNS 設定が有効になっている VPC エンドポイント用に作成した VPC へのネットワーク接続があることを確認します。
- AWS GovCloud 接続に必要な AWS PrivateLink の DNS 設定を解決するために必要な VPC のリストを収集します。これには、少なくとも設定中の multicluster engine Operator インスタンスの VPC を含めます。さまざまな Hive コントローラーが存在するすべての VPC のリストを含めることもできます。
1.8.3.4.2.2. VPC エンドポイントのセキュリティーグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
AWS の各 VPC エンドポイントには、エンドポイントへのアクセスを制御するためにセキュリティーグループが割り当てられます。Hive が VPC エンドポイントを作成する場合、セキュリティーグループは指定しません。VPC のデフォルトのセキュリティーグループは VPC エンドポイントに割り当てられます。VPC のデフォルトのセキュリティーグループには、VPC エンドポイントが Hive インストーラー Pod から作成されるトラフィックを許可するルールが必要です。詳細は、AWS ドキュメントの エンドポイントポリシーを使用した VPC エンドポイントへのアクセスの制御 を参照してください。
たとえば、Hive が hive-vpc(10.1.0.0/16) で実行されている場合は、VPC エンドポイントが作成される VPC のデフォルトセキュリティーグループに、10.1.0.0/16 からのイングレスを許可するルールが必要です。
1.8.3.4.2.3. AWS PrivateLink の権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
AWS PrivateLink を設定するには、複数の認証情報が必要です。これらの認証情報に必要な権限は、認証情報のタイプによって異なります。
ClusterDeployment の認証情報には、以下の権限が必要です。
ec2:CreateVpcEndpointServiceConfiguration ec2:DescribeVpcEndpointServiceConfigurations ec2:ModifyVpcEndpointServiceConfiguration ec2:DescribeVpcEndpointServicePermissions ec2:ModifyVpcEndpointServicePermissions ec2:DeleteVpcEndpointServiceConfigurationsエンドポイント VPC アカウントの HiveConfig の認証情報
.spec.awsPrivateLink.credentialsSecretRefには、以下の権限が必要です。ec2:DescribeVpcEndpointServices ec2:DescribeVpcEndpoints ec2:CreateVpcEndpoint ec2:CreateTags ec2:DescribeNetworkInterfaces ec2:DescribeVPCs ec2:DeleteVpcEndpoints route53:CreateHostedZone route53:GetHostedZone route53:ListHostedZonesByVPC route53:AssociateVPCWithHostedZone route53:DisassociateVPCFromHostedZone route53:CreateVPCAssociationAuthorization route53:DeleteVPCAssociationAuthorization route53:ListResourceRecordSets route53:ChangeResourceRecordSets route53:DeleteHostedZoneVPC をプライベートホストゾーンに関連付けるために
HiveConfigカスタムリソースに指定された認証情報 (.spec.awsPrivateLink.associatedVPCs[$idx].credentialsSecretRef)。VPC が置かれているアカウントには、以下の権限が必要です。route53:AssociateVPCWithHostedZone route53:DisassociateVPCFromHostedZone ec2:DescribeVPCs
ハブクラスターの Hive namespace 内に認証情報シークレットがあることを確認します。
HiveConfig カスタムリソースは、特定の提供される VPC でリソースを作成する権限を持つ Hive namespace 内で認証情報を参照する必要があります。AWS GovCloud での AWS クラスターのプロビジョニングに使用する認証情報がすでに Hive namespace にある場合は、別の認証情報を作成する必要はありません。AWS GovCloud での AWS クラスターのプロビジョニングに使用する認証情報がまだ Hive namespace にない場合、現在の認証情報を置き換えるか、Hive namespace に追加の認証情報を作成できます。
HiveConfig カスタムリソースには、以下の内容が含まれている必要があります。
- 指定された VPC のリソースをプロビジョニングするために必要な権限を持つ AWS GovCloud 認証情報。
OpenShift Container Platform クラスターインストールの VPC のアドレス、およびマネージドクラスターのサービスエンドポイント。
ベストプラクティス: OpenShift Container Platform クラスターのインストールおよびサービスエンドポイントに異なる VPC を使用します。
以下の例は、認証情報の内容を示しています。
spec:
awsPrivateLink:
## The list of inventory of VPCs that can be used to create VPC
## endpoints by the controller.
endpointVPCInventory:
- region: us-east-1
vpcID: vpc-1
subnets:
- availabilityZone: us-east-1a
subnetID: subnet-11
- availabilityZone: us-east-1b
subnetID: subnet-12
- availabilityZone: us-east-1c
subnetID: subnet-13
- availabilityZone: us-east-1d
subnetID: subnet-14
- availabilityZone: us-east-1e
subnetID: subnet-15
- availabilityZone: us-east-1f
subnetID: subnet-16
- region: us-east-1
vpcID: vpc-2
subnets:
- availabilityZone: us-east-1a
subnetID: subnet-21
- availabilityZone: us-east-1b
subnetID: subnet-22
- availabilityZone: us-east-1c
subnetID: subnet-23
- availabilityZone: us-east-1d
subnetID: subnet-24
- availabilityZone: us-east-1e
subnetID: subnet-25
- availabilityZone: us-east-1f
subnetID: subnet-26
## The credentialsSecretRef references a secret with permissions to create.
## The resources in the account where the inventory of VPCs exist.
credentialsSecretRef:
name: <hub-account-credentials-secret-name>
## A list of VPC where various mce clusters exists.
associatedVPCs:
- region: region-mce1
vpcID: vpc-mce1
credentialsSecretRef:
name: <credentials-that-have-access-to-account-where-MCE1-VPC-exists>
- region: region-mce2
vpcID: vpc-mce2
credentialsSecretRef:
name: <credentials-that-have-access-to-account-where-MCE2-VPC-exists>
AWS PrivateLink が endpointVPCInventory 一覧でサポートされているすべてのリージョンから VPC を含めることができます。コントローラーは、ClusterDeployment の要件を満たす VPC を選択します。
詳細は、Hive ドキュメント を参照してください。