14.7. AWS Local Zones でのサブネットの作成
OpenShift Container Platform クラスターのワーカーマシンセットを設定する前に、AWS Local Zones にサブネットを作成する必要があります。
ワーカーノードをデプロイする Local Zone ごとに、次のプロセスを繰り返す必要があります。
提供される CloudFormation テンプレートおよびカスタムパラメーターファイルを使用して、サブネットを表す AWS リソースのスタックを作成できます。
提供される CloudFormation テンプレートを使用して AWS インフラストラクチャーを使用しない場合、提供される情報を確認し、インフラストラクチャーを手動で作成する必要があります。クラスターが適切に初期化されない場合、インストールログを用意して Red Hat サポートに問い合わせする必要がある可能性があります。
前提条件
- AWS アカウントを設定している。
-
aws configureを実行して、AWS キーおよびリージョンをローカルの AWS プロファイルに追加している。 - Local Zone グループにオプトインしている。
手順
テンプレートが必要とするパラメーター値が含まれる JSON ファイルを作成します。
[ { "ParameterKey": "VpcId", "ParameterValue": "<value_of_VpcId>"1 }, { "ParameterKey": "PublicRouteTableId", "ParameterValue": "<value_of_PublicRouteTableId>"2 }, { "ParameterKey": "ZoneName", "ParameterValue": "<value_of_ZoneName>"3 }, { "ParameterKey": "SubnetName", "ParameterValue": "<value_of_SubnetName>" }, { "ParameterKey": "PublicSubnetCidr", "ParameterValue": "10.0.192.0/20"4 } ]- 1 1
- VPC の CloudFormation テンプレートの出力の
VpcIDの値である VPC ID を指定します。 - 2
- ルートテーブル ID を指定します。これは、VPC の CloudFormation スタック内の
PublicRouteTableIdの値です。 - 3
- AWS Local Zone 名を指定します。これは、AWS Local Zones へのオプトインセクションで取得する
AvailabilityZonesオブジェクトのZoneNameフィールドの値です。 - 4
- Local Zone のサブネットの作成に使用される CIDR ブロックを指定します。このブロックは、VPC CIDR ブロック
VpcCidrの一部である必要があります。
- このトピックの サブネットの CloudFormation テンプレート セクションからテンプレートをコピーし、これをコンピューター上に YAML ファイルとして保存します。このテンプレートは、クラスターに必要な VPC について記述しています。
次のコマンドを実行して、CloudFormation テンプレートを起動し、VPC を表す AWS リソースのスタックを作成します。
重要単一行にコマンドを入力してください。
$ aws cloudformation create-stack --stack-name <subnet_stack_name> \1 --template-body file://<template>.yaml \2 --parameters file://<parameters>.json3 出力例
arn:aws:cloudformation:us-east-1:123456789012:stack/<subnet_stack_name>/dbedae40-2fd3-11eb-820e-12a48460849f次のコマンドを実行して、テンプレートコンポーネントが存在することを確認します。
$ aws cloudformation describe-stacks --stack-name <subnet_stack_name>StackStatusがCREATE_COMPLETEを表示した後に、出力には以下のパラメーターの値が表示されます。これらのパラメーターの値をクラスターを作成するために実行する他の CloudFormation テンプレートに指定する必要があります。PublicSubnetIds新規パブリックサブネットの ID。
14.7.1. AWS Local Zones を使用するサブネットの CloudFormation テンプレート リンクのコピーリンクがクリップボードにコピーされました!
以下の CloudFormation テンプレートを使用して、AWS Local Zones を使用する OpenShift Container Platform クラスターに必要なサブネットをデプロイできます。
例14.2 サブネットの CloudFormation テンプレート
# CloudFormation template used to create Local Zone subnets and dependencies
AWSTemplateFormatVersion: 2010-09-09
Description: Template for create Public Local Zone subnets
Parameters:
VpcId:
Description: VPC Id
Type: String
ZoneName:
Description: Local Zone Name (Example us-east-1-nyc-1a)
Type: String
SubnetName:
Description: Local Zone Name (Example cluster-public-us-east-1-nyc-1a)
Type: String
PublicRouteTableId:
Description: Public Route Table ID to associate the Local Zone subnet
Type: String
PublicSubnetCidr:
AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-4]))$
ConstraintDescription: CIDR block parameter must be in the form x.x.x.x/16-24.
Default: 10.0.128.0/20
Description: CIDR block for Public Subnet
Type: String
Resources:
PublicSubnet:
Type: "AWS::EC2::Subnet"
Properties:
VpcId: !Ref VpcId
CidrBlock: !Ref PublicSubnetCidr
AvailabilityZone: !Ref ZoneName
Tags:
- Key: Name
Value: !Ref SubnetName
- Key: kubernetes.io/cluster/unmanaged
Value: "true"
PublicSubnetRouteTableAssociation:
Type: "AWS::EC2::SubnetRouteTableAssociation"
Properties:
SubnetId: !Ref PublicSubnet
RouteTableId: !Ref PublicRouteTableId
Outputs:
PublicSubnetIds:
Description: Subnet IDs of the public subnets.
Value:
!Join ["", [!Ref PublicSubnet]]