21.6. 複数の Ingress の作成
単一の AWS Load Balancer (ALB) を介して、単一のドメインの一部であるさまざまなサービスにトラフィックをルーティングできます。各 Ingress リソースは、ドメインの異なるエンドポイントを提供します。
21.6.1. 単一の AWS Load Balancer を介して複数の Ingress を作成
CLI を使用すると、単一の AWS Load Balancer (ALB) を介してトラフィックを複数の Ingress にルーティングできます。
前提条件
-
OpenShift CLI (
oc
) にアクセスできる。
手順
次のように、
IngressClassParams
リソースの YAML ファイル (例:sample-single-lb-params.yaml
) を作成します。apiVersion: elbv2.k8s.aws/v1beta1 1 kind: IngressClassParams metadata: name: <single-lb-params> 2 spec: group: name: single-lb 3
次のコマンドを実行して、
IngressClassParams
リソースを作成します。$ oc create -f sample-single-lb-params.yaml
次のように、
IngressClass
リソースの YAML ファイル (例:sample-single-lb.yaml
) を作成します。apiVersion: networking.k8s.io/v1 1 kind: IngressClass metadata: name: <single-lb> 2 spec: controller: ingress.k8s.aws/alb 3 parameters: apiGroup: elbv2.k8s.aws 4 kind: IngressClassParams 5 name: single-lb 6
次のコマンドを実行して、
IngressClass
リソースを作成します。$ oc create -f sample-single-lb.yaml
次のように、
Ingress
リソースの YAML ファイル (例:sample-multiple-ingress.yaml
) を作成します。apiVersion: networking.k8s.io/v1 1 kind: Ingress metadata: name: <example-1> 2 annotations: alb.ingress.kubernetes.io/scheme: internet-facing 3 alb.ingress.kubernetes.io/group.order: "1" 4 spec: ingressClass: alb 5 rules: - host: example.com 6 http: paths: - path: /blog 7 backend: service: name: <example-1> 8 port: number: 80 9 kind: Ingress metadata: name: <example-2> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "2" spec: ingressClass: alb rules: - host: example.com http: paths: - path: /store backend: service: name: <example-2> port: number: 80 kind: Ingress metadata: name: <example-3> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "3" spec: ingressClass: alb rules: - host: example.com http: paths: - path: / backend: service: name: <example-3> port: number: 80
- 1 2
- Ingress の名前を指定します。
- 3
- パブリックサブネットでプロビジョニングするロードバランサーを示し、インターネット経由でアクセスできるようにします。
- 4
- ロードバランサーでリクエストを受信したときに、Ingress からのルールが一致する順序を指定します。
- 5
- この入力に属する Ingress クラスを指定します。
- 6
- リクエストルーティングに使用されるドメインの名前を定義します。
- 7
- サービスにルーティングする必要があるパスを定義します。
- 8
- Ingress で設定されたエンドポイントにサービスを提供するサービスの名前を定義します。
- 9
- エンドポイントにサービスを提供するサービスのポートを定義します。
次のコマンドを実行して、
Ingress
リソースを作成します。$ oc create -f sample-multiple-ingress.yaml