23.6. 단일 AWS Load Balancer를 통해 여러 수신 리소스 제공
단일 AWS Load Balancer를 통해 트래픽을 단일 도메인에 속하는 다양한 서비스로 라우팅할 수 있습니다. 각 Ingress 리소스는 도메인의 다른 끝점을 제공합니다.
23.6.1. 단일 AWS Load Balancer를 통해 여러 수신 리소스 생성
CLI를 사용하여 단일 AWS Load Balancer를 통해 트래픽을 여러 수신 리소스로 라우팅할 수 있습니다.
사전 요구 사항
-
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-class.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-params 6
다음 명령을 실행하여
IngressClass
리소스를 생성합니다.$ oc create -f sample-single-lb-class.yaml
다음과 같이
AWSLoadBalancerController
리소스 YAML 파일을 생성합니다(예:sample-single-lb.yaml
).apiVersion: networking.olm.openshift.io/v1 kind: AWSLoadBalancerController metadata: name: cluster spec: subnetTagging: Auto ingressClass: single-lb 1
- 1
IngressClass
리소스의 이름을 정의합니다.
다음 명령을 실행하여
AWSLoadBalancerController
리소스를 생성합니다.$ oc create -f sample-single-lb.yaml
다음과 같이
Ingress
리소스 YAML 파일(예:sample-multiple-ingress.yaml
)을 생성합니다.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-1 1 annotations: alb.ingress.kubernetes.io/scheme: internet-facing 2 alb.ingress.kubernetes.io/group.order: "1" 3 alb.ingress.kubernetes.io/target-type: instance 4 spec: ingressClassName: single-lb 5 rules: - host: example.com 6 http: paths: - path: /blog 7 pathType: Prefix backend: service: name: example-1 8 port: number: 80 9 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-2 annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "2" alb.ingress.kubernetes.io/target-type: instance spec: ingressClassName: single-lb rules: - host: example.com http: paths: - path: /store pathType: Prefix backend: service: name: example-2 port: number: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-3 annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "3" alb.ingress.kubernetes.io/target-type: instance spec: ingressClassName: single-lb rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example-3 port: number: 80
- 1
- 수신 이름을 지정합니다.
- 2
- 인터넷에 액세스하기 위해 공용 서브넷에서 프로비저닝할 로드 밸런서를 나타냅니다.
- 3
- 로드 밸런서에서 요청을 수신할 때 여러 수신 리소스의 규칙과 일치하는 순서를 지정합니다.
- 4
- 로드 밸런서가 OpenShift Container Platform 노드를 대상으로 서비스에 도달하도록 지정합니다.
- 5
- 이 수신에 속하는 Ingress 클래스를 지정합니다.
- 6
- 요청 라우팅에 사용되는 도메인 이름을 정의합니다.
- 7
- 서비스로 라우팅해야 하는 경로를 정의합니다.
- 8
Ingress
리소스에 구성된 엔드포인트를 제공하는 서비스 이름을 정의합니다.- 9
- 엔드포인트를 제공하는 서비스의 포트를 정의합니다.
다음 명령을 실행하여
Ingress
리소스를 생성합니다.$ oc create -f sample-multiple-ingress.yaml