16.6. 엣지 및 클라우드 기반 AWS 컴퓨팅 리소스에서 워크로드 예약


AWS VPC 클러스터를 Outpost로 확장할 때 Outpost는 엣지 컴퓨팅 노드를 사용하고 VPC는 클라우드 기반 컴퓨팅 노드를 사용합니다. 다음 로드 밸런서 고려 사항은 Outpost로 확장된 AWS VPC 클러스터에 적용됩니다.

16.6.1. AWS VPC 클러스터에서 AWS Classic Load Balancer 사용으로 확장됨

AWS Outposts 인프라는 AWS Classic Load Balancer를 실행할 수 없지만 Edge 및 클라우드 기반 서브넷이 동일한 가용성 영역에 있는 경우 AWS VPC 클러스터의 Classic Load Balancer는 Outpost의 에지 컴퓨팅 노드를 대상으로 지정할 수 있습니다. 결과적으로 VPC 클러스터의 Classic Load Balancer가 이러한 노드 유형 중 하나에서 Pod를 예약할 수 있습니다.

엣지 컴퓨팅 노드에서 워크로드를 예약하고 클라우드 기반 컴퓨팅 노드에서 워크로드를 예약하면 대기 시간이 발생할 수 있습니다. VPC 클러스터의 Classic Load Balancer가 Outpost 엣지 컴퓨팅 노드를 대상으로 하는 것을 방지하려면 클라우드 기반 컴퓨팅 노드에 라벨을 적용하고 적용된 라벨이 있는 노드에서만 예약하도록 Classic Load Balancer를 구성할 수 있습니다.

참고

VPC 클러스터의 Classic Load Balancer가 Outpost 엣지 컴퓨팅 노드를 대상으로 하지 않도록 할 필요가 없는 경우 이러한 단계를 완료할 필요가 없습니다.

사전 요구 사항

  • AWS VPC 클러스터를 Outpost로 확장했습니다.
  • cluster-admin 권한이 있는 계정을 사용하여 클러스터에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 에지 컴퓨팅 머신의 테인트와 일치하는 허용 오차를 사용하여 Outpost에 사용자 워크로드를 생성했습니다.

프로세스

  1. 선택 사항: 다음 명령을 실행하고 출력에 Outpost의 에지 컴퓨팅 노드만 포함되어 있는지 확인하여 에지 컴퓨팅 노드에 location=outposts 레이블이 있는지 확인합니다.

    $ oc get nodes -l location=outposts
  2. 다음 명령을 실행하여 VPC 클러스터의 클라우드 기반 컴퓨팅 노드에 키-값 쌍으로 레이블을 지정합니다.

    $ for NODE in $(oc get node -l node-role.kubernetes.io/worker --no-headers | grep -v outposts | awk '{print$1}'); do oc label node $NODE <key_name>=<value>; done

    여기서 <key_name>=<value >는 클라우드 기반 컴퓨팅 노드를 구분하는 데 사용할 레이블입니다.

    출력 예

    node1.example.com labeled
    node2.example.com labeled
    node3.example.com labeled

  3. 선택 사항: 다음 명령을 실행하고 출력에 VPC 클러스터의 모든 클라우드 기반 컴퓨팅 노드가 포함되어 있는지 확인하여 클라우드 기반 컴퓨팅 노드에 지정된 레이블이 있는지 확인합니다.

    $ oc get nodes -l <key_name>=<value>

    출력 예

    NAME                   STATUS    ROLES     AGE       VERSION
    node1.example.com      Ready     worker    7h        v1.28.5
    node2.example.com      Ready     worker    7h        v1.28.5
    node3.example.com      Ready     worker    7h        v1.28.5

  4. 서비스 매니페스트의 annotations 필드에 클라우드 기반 서브넷 정보를 추가하여 Classic Load Balancer 서비스를 구성합니다.

    서비스 구성 예

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: <application_name>
      name: <application_name>
      namespace: <application_namespace>
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-subnets: <aws_subnet> 
    1
    
        service.beta.kubernetes.io/aws-load-balancer-target-node-labels: <key_name>=<value> 
    2
    
    spec:
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 8080
      selector:
        app: <application_name>
      type: LoadBalancer

    1
    AWS VPC 클러스터의 서브넷 ID를 지정합니다.
    2
    노드 레이블의 쌍과 일치하는 키-값 쌍을 지정합니다.
  5. 다음 명령을 실행하여 Service CR을 생성합니다.

    $ oc create -f <file_name>.yaml

검증

  1. 다음 명령을 실행하여 프로비저닝된 Classic Load Balancer의 호스트를 표시하도록 서비스 리소스의 상태를 확인합니다.

    $ HOST=$(oc get service <application_name> -n <application_namespace> --template='{{(index .status.loadBalancer.ingress 0).hostname}}')
  2. 다음 명령을 실행하여 프로비저닝된 Classic Load Balancer 호스트의 상태를 확인합니다.

    $ curl $HOST
  3. AWS 콘솔에서 레이블이 지정된 인스턴스만 로드 밸런서의 대상 인스턴스로 표시되는지 확인합니다.

16.6.2. AWS VPC 클러스터에서 AWS Load Balancer Operator 사용으로 확장됨

AWS VPC 클러스터에서 AWS Application Load Balancer를 프로비저닝하도록 AWS Load Balancer Operator를 구성할 수 있습니다. AWS Outposts는 AWS Network Load Balancer를 지원하지 않습니다. 결과적으로 AWS Load Balancer Operator는 Outpost에서 네트워크 로드 밸런서를 프로비저닝할 수 없습니다.

클라우드 서브넷 또는 Outpost 서브넷에서 AWS Application Load Balancer를 생성할 수 있습니다. 클라우드의 애플리케이션 로드 밸런서는 클라우드 기반 컴퓨팅 노드에 연결할 수 있으며, Outpost의 Application Load Balancer는 엣지 컴퓨팅 노드에 연결할 수 있습니다. 외부 서브넷 또는 VPC 서브넷으로 Ingress 리소스에 주석을 달어야 하지만 둘 다 해당되지는 않습니다.

사전 요구 사항

  • AWS VPC 클러스터를 Outpost로 확장했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • AWS Load Balancer Operator를 설치하고 AWS Load Balancer 컨트롤러를 생성했습니다.

프로세스

  • 지정된 서브넷을 사용하도록 Ingress 리소스를 구성합니다.

    Ingress 리소스 구성의 예

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: <application_name>
      annotations:
        alb.ingress.kubernetes.io/subnets: <subnet_id> 
    1
    
    spec:
      ingressClassName: alb
      rules:
        - http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <application_name>
                    port:
                      number: 80

    1
    사용할 서브넷을 지정합니다.
    • Outpost에서 Application Load Balancer를 사용하려면 Outpost 서브넷 ID를 지정합니다.
    • 클라우드에서 Application Load Balancer를 사용하려면 다른 가용성 영역에 두 개 이상의 서브넷을 지정해야 합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동