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 インストーラーがさまざまなクラスターサービスとコンポーネントに適したサブネットを識別する包括的な方法です。