2.4. AWS 로드 밸런서 운영자 설치


AWS 로드 밸런서 운영자는 AWS 로드 밸런서 컨트롤러를 배포하고 관리합니다. OpenShift Container Platform 웹 콘솔이나 CLI를 사용하여 OperatorHub에서 AWS Load Balancer Operator를 설치할 수 있습니다.

2.4.1. 웹 콘솔을 사용하여 AWS Load Balancer Operator 설치

웹 콘솔을 사용하여 AWS Load Balancer Operator를 설치할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있는 사용자로 OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • 귀하의 클러스터는 플랫폼 유형 및 클라우드 공급자로 AWS로 구성되었습니다.
  • 보안 토큰 서비스(STS) 또는 사용자 제공 인프라를 사용하는 경우 관련 준비 단계를 따르세요. 예를 들어 AWS 보안 토큰 서비스를 사용하는 경우 "AWS 보안 토큰 서비스(STS)를 사용하여 클러스터에서 AWS 로드 밸런서 운영자 준비"를 참조하세요.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operators OperatorHub 로 이동합니다.
  2. AWS Load Balancer Operator를 선택합니다. 키워드로 필터링 텍스트 상자를 사용하거나 필터 목록을 사용하여 운영자 목록에서 AWS Load Balancer 운영자를 검색할 수 있습니다.
  3. aws-load-balancer-operator 네임스페이스를 선택합니다.
  4. 설치 운영자 페이지에서 다음 옵션을 선택하세요.

    1. 채널을 stable-v1 로 업데이트합니다.
    2. 설치 모드클러스터의 모든 네임스페이스(기본값) 입니다.
    3. 네임스페이스를 aws-load-balancer-operator설치했습니다 . aws-load-balancer-operator 네임스페이스가 없으면 Operator 설치 중에 생성됩니다.
    4. 업데이트 승인을 자동 또는 수동 으로 선택합니다. 기본적으로 업데이트 승인은 자동 으로 설정됩니다. 자동 업데이트를 선택하면 Operator Lifecycle Manager(OLM)가 어떠한 개입 없이 실행 중인 Operator 인스턴스를 자동으로 업그레이드합니다. 수동 업데이트를 선택하면 OLM에서 업데이트 요청을 생성합니다. 클러스터 관리자는 해당 업데이트 요청을 수동으로 승인하여 Operator를 새 버전으로 업데이트해야 합니다.
  5. 설치를 클릭합니다.

검증

  • 설치된 운영자 대시보드에서 AWS Load Balancer 운영자의 상태가 성공 으로 표시되는지 확인합니다.

2.4.2. CLI를 사용하여 AWS Load Balancer Operator 설치

CLI를 사용하여 AWS Load Balancer Operator를 설치할 수 있습니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있는 사용자로 OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • 귀하의 클러스터는 플랫폼 유형 및 클라우드 공급자로 AWS로 구성되었습니다.
  • OpenShift CLI( oc )에 로그인했습니다.

프로세스

  1. 네임스페이스 객체를 만듭니다.

    1. 네임스페이스 객체를 정의하는 YAML 파일을 만듭니다.

      namespace.yaml 파일 예

      apiVersion: v1
      kind: Namespace
      metadata:
        name: aws-load-balancer-operator
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 네임스페이스 객체를 만듭니다.

      $ oc apply -f namespace.yaml
      Copy to Clipboard Toggle word wrap
  2. OperatorGroup 오브젝트를 생성합니다.

    1. OperatorGroup 객체를 정의하는 YAML 파일을 만듭니다.

      operatorgroup.yaml 파일 예시

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: aws-lb-operatorgroup
        namespace: aws-load-balancer-operator
      spec:
        upgradeStrategy: Default
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 OperatorGroup 객체를 만듭니다.

      $ oc apply -f operatorgroup.yaml
      Copy to Clipboard Toggle word wrap
  3. 구독 객체를 만듭니다.

    1. 구독 객체를 정의하는 YAML 파일을 만듭니다.

      subscription.yaml 파일 예시

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: aws-load-balancer-operator
        namespace: aws-load-balancer-operator
      spec:
        channel: stable-v1
        installPlanApproval: Automatic
        name: aws-load-balancer-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 서브스크립션 오브젝트를 생성합니다.

      $ oc apply -f subscription.yaml
      Copy to Clipboard Toggle word wrap

검증

  1. 구독에서 설치 계획의 이름을 가져옵니다.

    $ oc -n aws-load-balancer-operator \
      get subscription aws-load-balancer-operator \
      --template='{{.status.installplan.name}}{{"\n"}}'
    Copy to Clipboard Toggle word wrap
  2. 설치 계획의 상태를 확인하세요.

    $ oc -n aws-load-balancer-operator \
      get ip <install_plan_name> \
      --template='{{.status.phase}}{{"\n"}}'
    Copy to Clipboard Toggle word wrap

    출력은 완료 되어야 합니다.

2.4.3. AWS 로드 밸런서 컨트롤러 생성

클러스터에 AWSLoadBalancerController 객체의 단일 인스턴스만 설치할 수 있습니다. CLI를 사용하여 AWS Load Balancer Controller를 생성할 수 있습니다. AWS Load Balancer Operator는 리소스라는 이름의 클러스터 만 조정합니다.

사전 요구 사항

  • echoserver 네임스페이스를 생성했습니다.
  • OpenShift CLI(oc)에 액세스할 수 있습니다.

프로세스

  1. AWSLoadBalancerController 객체를 정의하는 YAML 파일을 만듭니다.

    sample-aws-lb.yaml 파일 예시

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController 
    1
    
    metadata:
      name: cluster 
    2
    
    spec:
      subnetTagging: Auto 
    3
    
      additionalResourceTags: 
    4
    
      - key: example.org/security-scope
        value: staging
      ingressClass: alb 
    5
    
      config:
        replicas: 2 
    6
    
      enabledAddons: 
    7
    
        - AWSWAFv2 
    8
    Copy to Clipboard Toggle word wrap

    1
    AWSLoadBalancerController 객체를 정의합니다.
    2
    AWS Load Balancer Controller 이름을 정의합니다. 이 인스턴스 이름은 모든 관련 리소스에 접미사로 추가됩니다.
    3
    AWS Load Balancer Controller에 대한 서브넷 태그 지정 방법을 구성합니다. 유효한 값은 다음과 같습니다.
    • 자동 : AWS Load Balancer Operator는 클러스터에 속하는 서브넷을 결정하고 이에 적절한 태그를 지정합니다. 내부 서브넷 태그가 내부 서브넷에 없으면 운영자는 역할을 올바르게 결정할 수 없습니다.
    • 수동 : 클러스터에 속한 서브넷에 적절한 역할 태그를 수동으로 지정합니다. 사용자가 제공한 인프라에 클러스터를 설치한 경우 이 옵션을 사용하세요.
    4
    AWS 리소스를 프로비저닝할 때 AWS Load Balancer Controller에서 사용하는 태그를 정의합니다.
    5
    수신 클래스 이름을 정의합니다. 기본값은 alb 입니다.
    6
    AWS Load Balancer Controller의 복제본 수를 지정합니다.
    7
    AWS Load Balancer Controller에 대한 추가 기능으로 주석을 지정합니다.
    8
    alb.ingress.kubernetes.io/wafv2-acl-arn 주석을 활성화합니다.
  2. 다음 명령을 실행하여 AWSLoadBalancerController 객체를 만듭니다.

    $ oc create -f sample-aws-lb.yaml
    Copy to Clipboard Toggle word wrap
  3. 배포 리소스를 정의하는 YAML 파일을 만듭니다.

    sample-aws-lb.yaml 파일 예시

    apiVersion: apps/v1
    kind: Deployment 
    1
    
    metadata:
      name: <echoserver> 
    2
    
      namespace: echoserver
    spec:
      selector:
        matchLabels:
          app: echoserver
      replicas: 3 
    3
    
      template:
        metadata:
          labels:
            app: echoserver
        spec:
          containers:
            - image: openshift/origin-node
              command:
               - "/bin/socat"
              args:
                - TCP4-LISTEN:8080,reuseaddr,fork
                - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
              imagePullPolicy: Always
              name: echoserver
              ports:
                - containerPort: 8080
    Copy to Clipboard Toggle word wrap

    1
    배포 리소스를 정의합니다.
    2
    배포 이름을 지정합니다.
    3
    배포 복제본 수를 지정합니다.
  4. 서비스 리소스를 정의하는 YAML 파일을 만듭니다.

    service-albo.yaml 파일 예시

    apiVersion: v1
    kind: Service 
    1
    
    metadata:
      name: <echoserver> 
    2
    
      namespace: echoserver
    spec:
      ports:
        - port: 80
          targetPort: 8080
          protocol: TCP
      type: NodePort
      selector:
        app: echoserver
    Copy to Clipboard Toggle word wrap

    1
    서비스 리소스를 정의합니다.
    2
    서비스 이름을 지정합니다.
  5. Ingress 리소스를 정의하는 YAML 파일을 만듭니다.

    ingress-albo.yaml 파일 예시

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: <name> 
    1
    
      namespace: echoserver
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: instance
    spec:
      ingressClassName: alb
      rules:
        - http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <echoserver> 
    2
    
                    port:
                      number: 80
    Copy to Clipboard Toggle word wrap

    1
    Ingress 리소스의 이름을 지정합니다.
    2
    서비스 이름을 지정합니다.

검증

  • 다음 명령을 실행하여 HOST 변수에 Ingress 리소스 상태를 저장합니다.

    $ HOST=$(oc get ingress -n echoserver echoserver --template='{{(index .status.loadBalancer.ingress 0).hostname}}')
    Copy to Clipboard Toggle word wrap
  • 다음 명령을 실행하여 Ingress 리소스의 상태를 확인하세요.

    $ curl $HOST
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat