2.11. 特定のサブネットへのロードバランサーの割り当て
ロードバランサーを割り当てることで、アプリケーショントラフィックを効率的に管理できます。ネットワーク管理者は、ロードバランサーを割り当ててデプロイメントをカスタマイズし、最適なトラフィック分散、アプリケーションの高可用性、中断のないサービス、ネットワークのセグメンテーションを確保できます。
2.11.1. AWS 上の特定のサブネットに API および Ingress ロードバランサーを割り当てる リンクのコピーリンクがクリップボードにコピーされました!
install-config.yaml ファイルの platform.aws.vpc.subnets セクションにおいて、Virtual Private Cloud (VPC) のサブネットを明示的に定義し、それらに特定のロールを直接を割り当てることで、AWS 上の OpenShift ロードバランサー (Ingress Controller 用を含む) のネットワーク配置を制御できます。この方法では、Ingress Controller やその他のクラスターコンポーネントなどのリソースに使用するサブネットを詳細に制御できます。
2.11.1.1. インストール時に OpenShift API と Ingress ロードバランサーの AWS サブネットを指定する リンクのコピーリンクがクリップボードにコピーされました!
API および Ingress ロードバランサーを特定のサブネットに割り当てるには、次の手順を実行します。
前提条件
始める前に、以下を用意してください。
- 既存の AWS Virtual Private Cloud (VPC)。
OpenShift クラスターで使用するために事前設定された AWS サブネット。次の点に注意してください。
-
サブネット ID のリストがある (例:
subnet-0123456789abcdef0)。これらの ID はinstall-config.yamlファイルで使用されます。 - ロードバランサーやコントロールプレーンなどのその他の重要なコンポーネントの高可用性を確保するために、少なくとも 2 つのアベイラビリティーゾーン (AZ) にまたがるサブネットを使用している。
- これらのサブネット内には、割り当てられたすべてのロールに対して使用可能な IP アドレスが十分にある。
- ネットワーク ACL やセキュリティーグループを含むこれらのサブネットの AWS 設定では、割り当てられたすべてのロールに必要なトラフィックを許可する必要がある。Ingress Controller をホストするサブネットの場合、これには通常、必要なソースからの TCP ポート 80 と 443 が含まれます。
-
サブネット ID のリストがある (例:
- ターゲットの OpenShift バージョン用の OpenShift インストーラーバイナリー。
-
install-config.yamlファイル。
手順
install-config.yamlファイルを作成します。まだ準備していない場合は、OpenShift インストーラーを使用してインストール設定ファイルを生成します。
openshift-install create install-config --dir=<your_installation_directory>
$ openshift-install create install-config --dir=<your_installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、指定されたディレクトリーに
install-config.yamlファイルを作成します。サブネットを定義し、ロールを割り当てます。
テキストエディターを使用して、
<your_installation_directory>にあるinstall-config.yamlファイルを開きます。VPC サブネットと指定されたロールは、platform.aws.vpc.subnetsフィールドで定義します。クラスターが使用する予定の AWS サブネットごとに、その
idとrolesのリストを指定するエントリーを作成します。各ロールは、typeキーを持つオブジェクトです。デフォルトの Ingress Controller のサブネットを指定するには、type: IngressControllerLBのロールを割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 使用中のベースドメイン。
- 2
- 使用中の AWS リージョン。
- 3
platform.awsの下の vpc オブジェクトには、サブネットリストが含まれます。- 4
- OpenShift が使用するすべてのサブネットオブジェクトのリスト。各オブジェクトは、サブネット ID とそのロールを定義します。
- 5
- AWS サブネット ID に置き換えます。
- 6
type: IngressControllerLBロールは、このサブネットをデフォルトの Ingress Controller の LoadBalancer 用に明示的に指定します。プライベート/内部クラスターでは、IngressControllerLBロールを持つサブネットはプライベートである必要があります。- 7
type: ClusterNodeロールは、コントロールプレーンとコンピュートノード用にこのサブネットを指定します。これらは通常、プライベートサブネットです。- 8
- 使用中のプルシークレット。
- 9
- 使用中の SSH キー。
subnetsリスト内のコントロールプレーンロードバランサーのエントリーも同様のパターンに従います。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのパブリック Ingress Controller の場合、
install-config.yamlファイルでIngressControllerLBロールが割り当てられているサブネットは、すべてパブリックサブネットである必要があります。たとえば、送信トラフィックをインターネットゲートウェイ (IGW) に誘導するルートテーブルエントリーが AWS 内に存在している必要があります。AZ 全体の必要なすべてのサブネット (パブリックとプライベート) をリストし、クラスターアーキテクチャーに応じて適切なロールを割り当てます。
サブネット ID は既存の VPC 内のサブネットを定義し、オプションでその目的のロールを指定できます。どのサブネットにもロールが指定されていない場合は、サブネットのロールが自動的に決定されます。この場合、VPC には
kubernetes.io/cluster/<cluster-id>タグのない他の非クラスターサブネットを含めることはできません。サブネットにロールを指定する場合、各サブネットに少なくとも 1 つのロールが割り当てられている必要があり、
ClusterNode、BootstrapNode、IngressControllerLB、ControlPlaneExternalLB、およびControlPlaneInternalLBのロールが少なくとも 1 つのサブネットに割り当てられている必要があります。ただし、クラスタースコープが内部の場合、ControlPlaneExternalLBは必要ありません。クラスターのインストールを続行します。
install-config.yamlファイルへの変更を保存したら、クラスターを作成します。openshift-install create cluster --dir=<your_installation_directory>
$ openshift-install create cluster --dir=<your_installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストールプログラムは、
install-config.yamlファイルのplatform.aws.vpc.subnetsセクションのサブネット定義と明示的なロール割り当てを使用して、IngressControllerLBロールで指定したサブネットに Ingress Controller の LoadBalancer を配置するなど、クラスターリソースをプロビジョニングするようになりました。
IngressControllerLB、ClusterNode、ControlPlaneExternalLB、ControlPlaneInternalLB、BootstrapNode などのタイプを指定するなど、platform.aws.vpc.subnets 内のロール割り当てメカニズムは、OpenShift インストーラーがさまざまなクラスターサービスとコンポーネントに適したサブネットを識別する包括的な方法です。