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": "ClusterName",1 "ParameterValue": "mycluster"2 }, { "ParameterKey": "VpcId",3 "ParameterValue": "vpc-<random_string>"4 }, { "ParameterKey": "PublicRouteTableId",5 "ParameterValue": "<vpc_rtb_pub>"6 }, { "ParameterKey": "LocalZoneName",7 "ParameterValue": "<cluster_region_name>-<location_identifier>-<zone_identifier>"8 }, { "ParameterKey": "LocalZoneNameShort",9 "ParameterValue": "<lz_zone_shortname>"10 }, { "ParameterKey": "PublicSubnetCidr",11 "ParameterValue": "10.0.128.0/20"12 } ]- 1
- ホスト名などに使用する短いクラスター名。
- 2
- クラスターの
install-config.yamlファイルを生成した時に使用したクラスター名を指定します。 - 3
- Local Zone のサブネットが作成される VPC ID。
- 4
- VPC の CloudFormation テンプレートの出力から
VpcId値を指定します。 - 5
- VPC のパブリックルートテーブル ID。
- 6
- VPC の CloudFormation テンプレートの出力から
PublicRouteTableId値を指定します。 - 7
- VPC が属する Local Zone 名。
- 8
- AWS アカウントをオプトインした Local Zone を指定します (例:
us-east-1-nyc-1a)。 - 9
- VPC が属する AWS Local Zone の短縮名。
- 10
- AWS アカウントをオプトインした AWS Local Zone の短い名前を指定します (例:
<zone_group_identified><zone_identifier>)。たとえば、us-east-1-nyc-1aはnyc-1aに短縮されます。 - 11
- Local Zone へのアクセスを許可する CIDR ブロック。
- 12
x.x.x.x/16-24形式で CIDR ブロックを指定します。
- このトピックの サブネットの 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/cluster-lz-nyc1/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 Best Practice VPC with 1-3 AZs
Parameters:
ClusterName:
Description: ClusterName used to prefix resource names
Type: String
VpcId:
Description: VPC Id
Type: String
LocalZoneName:
Description: Local Zone Name (Example us-east-1-bos-1)
Type: String
LocalZoneNameShort:
Description: Short name for Local Zone used on tag Name (Example bos1)
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 LocalZoneName
Tags:
- Key: Name
Value: !Join
- ""
- [ !Ref ClusterName, "-public-", !Ref LocalZoneNameShort, "-1" ]
- 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]
]