MetalLB 로드 밸런서 설치: NetApp 사용한 Red Hat OpenShift
이 페이지에서는 MetalLB 로드 밸런서의 설치 및 구성 지침을 나열합니다.
MetalLB는 OpenShift 클러스터에 설치되는 셀프 호스팅 네트워크 로드 밸런서로, 클라우드 공급자에서 실행되지 않는 클러스터에서 로드 밸런서 유형의 OpenShift 서비스를 생성할 수 있도록 해줍니다. LoadBalancer 서비스를 지원하기 위해 함께 작동하는 MetalLB의 두 가지 주요 기능은 주소 할당과 외부 알림입니다.
MetalLB 구성 옵션
MetalLB가 OpenShift 클러스터 외부의 LoadBalancer 서비스에 할당된 IP 주소를 알리는 방식에 따라 두 가지 모드로 작동합니다.
-
레이어 2 모드. 이 모드에서는 OpenShift 클러스터의 한 노드가 서비스 소유권을 갖고 해당 IP에 대한 ARP 요청에 응답하여 OpenShift 클러스터 외부에서 서비스에 액세스할 수 있도록 합니다. IP를 알리는 노드가 하나뿐이므로 대역폭 병목 현상과 느린 장애 조치 제한이 있습니다. 자세한 내용은 "MetalLB 레이어 2 모드 문서"을 참조하십시오.
-
BGP 모드. 이 모드에서는 OpenShift 클러스터의 모든 노드가 라우터와 BGP 피어링 세션을 설정하고 서비스 IP로 트래픽을 전달하는 경로를 광고합니다. 이를 위해서는 해당 네트워크의 라우터에 MetalLB를 통합해야 합니다. BGP의 해싱 메커니즘으로 인해 서비스의 IP-노드 매핑이 변경될 경우 특정 제약 사항이 발생합니다. 자세한 내용은 "MetalLB BGP 모드 설명서"을 참조하십시오.
|
|
이 문서에서는 MetalLB를 2계층 모드로 구성합니다. |
MetalLB 로드 밸런서 설치
-
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
-
파일 편집
metallb.yaml그리고 제거하다spec.template.spec.securityContext컨트롤러 배포와 스피커 DaemonSet에서.삭제할 줄:
securityContext: runAsNonRoot: true runAsUser: 65534
-
생성하다
metallb-system네임스페이스.[netapp-user@rhel7 ~]$ oc create -f namespace.yaml namespace/metallb-system created
-
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
-
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"
-
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 -
이제 로드 밸런서 서비스가 생성되면 MetalLB는 서비스에 외부 IP를 할당하고 ARP 요청에 응답하여 IP 주소를 알립니다.
MetalLB를 BGP 모드로 구성하려면 위의 6단계를 건너뛰고 "MetalLB BGP 모드 설명서"의 절차를 따르십시오.