Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

安裝MetalLB負載平衡器:Red Hat OpenShift with NetApp

貢獻者

本頁列出MetalLB負載平衡器的安裝與組態指示。

MetalLB是安裝在OpenShift叢集上的自我代管網路負載平衡器、可在未在雲端供應商上執行的叢集中、建立類型負載平衡器的OpenShift服務。MetalLB的兩項主要功能是位址分配和外部宣告、這些功能可搭配運作以支援負載平衡器服務。

MetalLB組態選項

根據MetalLB如何宣告指派給OpenShift叢集外部負載平衡器服務的IP位址、它以兩種模式運作:

  • *第2層模式。*在此模式下、OpenShift叢集中的一個節點會取得服務的所有權、並回應該IP的ARP要求、以便在OpenShift叢集外部存取。因為只有節點會通告IP、所以它會有頻寬瓶頸和緩慢的容錯移轉限制。如需詳細資訊、請參閱文件 "請按這裡"

  • * BGP模式。*在此模式下、OpenShift叢集中的所有節點都會與路由器建立BGP對等工作階段、並通告路由以將流量轉送到服務IP。這項作業的先決條件是將MetalLB與該網路中的路由器整合。由於BGP中的雜湊機制、因此在變更服務的IP對節點對應時、會有一定的限制。如需詳細資訊、請參閱文件 "請按這裡"

註 針對本文件、我們將在第2層模式中設定MetalLB。

安裝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」、並從「控制器部署」和「示範演講者」中移除「pec.template.spec.securityContext`」。

    要刪除的行數:

    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揚聲器之前、請先授予揚聲器示範設定提高權限、以便執行所需的網路組態、使負載平衡器正常運作。

    [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-system」命名空間中建立「ConfigMap」來設定MetalLB。

    [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文件中的程序進行 "請按這裡"