本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。
安裝 MetalLB 負載平衡器:Red Hat OpenShift 與NetApp
本頁列出了 MetalLB 負載平衡器的安裝和設定說明。
MetalLB 是安裝在 OpenShift 叢集上的自架網路負載平衡器,可在不在雲端供應商上執行的叢集中建立類型負載平衡器的 OpenShift 服務。 MetalLB 共同支撐 LoadBalancer 服務的兩個主要功能是地址分配和對外通告。
MetalLB 配置選項
根據 MetalLB 如何宣布分配給 OpenShift 叢集之外的 LoadBalancer 服務的 IP 位址,它以兩種模式運作:
|
為了本文檔的目的,我們在第 2 層模式下配置 MetalLB。 |
安裝 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 會為服務指派一個 externalIP,並透過回應 ARP 請求來通告該 IP 位址。
如果您希望在 BGP 模式下配置 MetalLB,請跳過上面的步驟 6 並按照 MetalLB 文件中的步驟進行操作"這裡"。