Skip to main content
NetApp container solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

MetalLB 로드 밸런서 설치: NetApp 사용한 Red Hat OpenShift

기여자 kevin-hoke

이 페이지에서는 MetalLB 로드 밸런서의 설치 및 구성 지침을 나열합니다.

MetalLB는 OpenShift 클러스터에 설치되는 셀프 호스팅 네트워크 로드 밸런서로, 클라우드 공급자에서 실행되지 않는 클러스터에서 로드 밸런서 유형의 OpenShift 서비스를 생성할 수 있도록 해줍니다. LoadBalancer 서비스를 지원하기 위해 함께 작동하는 MetalLB의 두 가지 주요 기능은 주소 할당과 외부 알림입니다.

MetalLB 구성 옵션

MetalLB가 OpenShift 클러스터 외부의 LoadBalancer 서비스에 할당된 IP 주소를 알리는 방식에 따라 두 가지 모드로 작동합니다.

  • 레이어 2 모드. 이 모드에서는 OpenShift 클러스터의 한 노드가 서비스 소유권을 취득하고 해당 IP에 대한 ARP 요청에 응답하여 OpenShift 클러스터 외부에서도 접근 가능하도록 합니다. 노드만이 IP를 광고하므로 대역폭 병목 현상이 발생하고 장애 조치에 제한이 있습니다. 자세한 내용은 설명서를 참조하세요."여기" .

  • BGP 모드. 이 모드에서는 OpenShift 클러스터의 모든 노드가 라우터와 BGP 피어링 세션을 설정하고 서비스 IP로 트래픽을 전달하는 경로를 광고합니다. 이를 위해서는 MetalLB를 해당 네트워크의 라우터와 통합해야 합니다. BGP의 해싱 메커니즘으로 인해 서비스의 IP-노드 매핑이 변경될 때 특정 제한이 발생합니다. 자세한 내용은 설명서를 참조하세요."여기" .

참고 이 문서에서는 MetalLB를 2계층 모드로 구성합니다.

MetalLB 로드 밸런서 설치

  1. MetalLB 리소스를 다운로드하세요.

    [netapp-user@rhel7 ~]$ wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml
    [netapp-user@rhel7 ~]$ wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml
  2. 파일 편집 metallb.yaml 그리고 제거하다 spec.template.spec.securityContext 컨트롤러 배포와 스피커 DaemonSet에서.

    삭제할 줄:

    securityContext:
      runAsNonRoot: true
      runAsUser: 65534
  3. 생성하다 metallb-system 네임스페이스.

    [netapp-user@rhel7 ~]$ oc create -f namespace.yaml
    namespace/metallb-system created
  4. MetalLB CR을 만듭니다.

    [netapp-user@rhel7 ~]$ oc create -f metallb.yaml
    podsecuritypolicy.policy/controller created
    podsecuritypolicy.policy/speaker created
    serviceaccount/controller created
    serviceaccount/speaker created
    clusterrole.rbac.authorization.k8s.io/metallb-system:controller created
    clusterrole.rbac.authorization.k8s.io/metallb-system:speaker created
    role.rbac.authorization.k8s.io/config-watcher created
    role.rbac.authorization.k8s.io/pod-lister created
    role.rbac.authorization.k8s.io/controller created
    clusterrolebinding.rbac.authorization.k8s.io/metallb-system:controller created
    clusterrolebinding.rbac.authorization.k8s.io/metallb-system:speaker created
    rolebinding.rbac.authorization.k8s.io/config-watcher created
    rolebinding.rbac.authorization.k8s.io/pod-lister created
    rolebinding.rbac.authorization.k8s.io/controller created
    daemonset.apps/speaker created
    deployment.apps/controller created
  5. MetalLB 스피커를 구성하기 전에 스피커 DaemonSet에 높은 권한을 부여하여 로드 밸런서가 작동하는 데 필요한 네트워킹 구성을 수행할 수 있도록 합니다.

    [netapp-user@rhel7 ~]$ oc adm policy add-scc-to-user privileged -n metallb-system -z speaker
    clusterrole.rbac.authorization.k8s.io/system:openshift:scc:privileged added: "speaker"
  6. MetalLB를 구성하려면 다음을 생성하세요. ConfigMap 에서 metallb-system 네임스페이스.

    [netapp-user@rhel7 ~]$ vim metallb-config.yaml
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: metallb-system
      name: config
    data:
      config: |
        address-pools:
        - name: default
          protocol: layer2
          addresses:
          - 10.63.17.10-10.63.17.200
    
    [netapp-user@rhel7 ~]$ oc create -f metallb-config.yaml
    configmap/config created
  7. 이제 로드 밸런서 서비스가 생성되면 MetalLB는 서비스에 외부 IP를 할당하고 ARP 요청에 응답하여 IP 주소를 알립니다.

    참고 BGP 모드에서 MetalLB를 구성하려면 위의 6단계를 건너뛰고 MetalLB 설명서의 절차를 따르세요."여기" .