2.6.3.2. LoadBalancerService Ingress Controller の作成時にサブネットを選択する
既存のクラスター内でイングレスコントローラーのネットワーク配置を手動で制御するには、設定ファイルでロードバランサーのサブネットを指定します。この方法は、Amazon Web Services が使用するデフォルトの自動サブネット検出方法を上書きすることで、インフラストラクチャーを正確に制御できます。
前提条件
- AWS クラスターがインストールされている。
-
IngressControllerをマッピングするサブネットの名前または ID がわかっている。
手順
sample-ingress.yamlなどのカスタムリソース (CR) YAML ファイルを作成し、ファイルに以下の内容を指定します。apiVersion: operator.openshift.io/v1 kind: IngressController metadata: namespace: openshift-ingress-operator name: <name> spec: domain: <domain> endpointPublishingStrategy: type: LoadBalancerService loadBalancer: scope: External dnsManagementPolicy: Managed # ...CR ファイルにサブネットを追加します。
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: <name> namespace: openshift-ingress-operator spec: domain: <domain> endpointPublishingStrategy: type: LoadBalancerService loadBalancer: scope: External providerParameters: type: AWS aws: type: Classic classicLoadBalancer: subnets: ids: - <subnet> - <subnet> - <subnet> dnsManagementPolicy: Managedここでは、以下のようになります。
name-
IngressControllerの名前を指定します。 domain-
IngressControllerによってサービスされる DNS 名を指定します。 classicLoadBalancer-
ロードバランサーの種類を指定します。CLB を使用する場合は
classicLoadBalancer、NLB を使用する場合はnetworkLoadBalancerフィールドを指定します。 ids-
サブネットを ID で指定する代わりに、
名前フィールドを使用して名前でサブネットを指定します。このフィールドは任意です。 <subnet>サブネット ID (または名前を使用する場合は
名前) を指定します。重要アベイラビリティーゾーンごとに最大 1 つのサブネットを指定できます。外部 Ingress Controller にはパブリックサブネットだけを指定し、内部 Ingress Controller にはプライベートサブネットだけを指定してください。
OpenShift CLI (
oc) を使用して CR ファイルを保存して適用します。$ oc apply -f sample-ingress.yamlIngressControllerの状態を確認して、ロードバランサーが正常にプロビジョニングされたことを確認します。$ oc get ingresscontroller -n openshift-ingress-operator <name> -o jsonpath="{.status.conditions}" | yq -PC