MetalLB 로드 밸런서 설치: NetApp 사용한 Red Hat OpenShift
이 페이지에서는 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 로드 밸런서 설치
-
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 주소를 알립니다.
BGP 모드에서 MetalLB를 구성하려면 위의 6단계를 건너뛰고 MetalLB 설명서의 절차를 따르세요."여기" .