MetalLB 로드 밸런서 설치: NetApp과 Red Hat OpenShift
이 페이지에는 MetalLB 로드 밸런서에 대한 설치 및 구성 지침이 나와 있습니다.
MetalLB는 OpenShift 클러스터에 설치되는 자체 호스팅 네트워크 로드 밸런서로서, 클라우드 공급자에서 실행되지 않는 클러스터에서 유형 로드 밸런서의 OpenShift 서비스를 생성할 수 있습니다. 로드 밸런서 서비스를 지원하기 위해 함께 작동하는 MetalLB의 두 가지 주요 기능은 주소 할당과 외부 안내입니다.
MetalLB 구성 옵션
MetalLB가 OpenShift 클러스터 외부의 로드 밸런서 서비스에 할당된 IP 주소를 알려 주면 두 가지 모드로 작동합니다.
-
* Layer 2 모드 * 이 모드에서는 OpenShift 클러스터의 한 노드가 서비스 소유권을 가져와 해당 IP에 대한 ARP 요청에 응답하여 OpenShift 클러스터 외부에서 해당 IP에 연결할 수 있도록 합니다. 노드만 IP를 광고하기 때문에 대역폭 병목 현상 및 느린 페일오버 제한이 있습니다. 자세한 내용은 설명서를 참조하십시오 "여기".
-
* BGP mode. * 이 모드에서 OpenShift 클러스터의 모든 노드는 라우터와 BGP 피어링 세션을 설정하고 트래픽을 서비스 IP로 전달하기 위한 경로를 광고합니다. 이를 위해서는 MetalLB를 해당 네트워크의 라우터에 통합해야 합니다. BGP의 해싱 메커니즘으로 인해 서비스에 대한 IP-노드 매핑이 변경될 때 특정 제한이 있습니다. 자세한 내용은 설명서를 참조하십시오 "여기".
이 문서에서는 MetalLB를 Layer-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을 편집하고 컨트롤러 배포 및 스피커 DemonSet에서 pec.template.spec.securityContext` 파일을 제거합니다.
삭제할 줄: *
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 스피커를 구성하기 전에, 로드 밸런서가 작동하는 데 필요한 네트워킹 구성을 수행할 수 있도록 스피커 DemonSet Elevated 권한을 부여합니다.
[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는 metallb-system 네임스페이스에서 ConfigMap을 만들어 구성합니다.
[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 설명서의 절차를 따르십시오 "여기".