安装 MetalLB 负载均衡器:Red Hat OpenShift 与NetApp
本页列出了 MetalLB 负载均衡器的安装和配置说明。
MetalLB 是安装在 OpenShift 集群上的自托管网络负载均衡器,允许在不在云提供商上运行的集群中创建类型负载均衡器的 OpenShift 服务。 MetalLB 共同支撑 LoadBalancer 服务的两个主要特性是地址分配和对外通告。
MetalLB 配置选项
根据 MetalLB 如何宣布分配给 OpenShift 集群之外的 LoadBalancer 服务的 IP 地址,它以两种模式运行:
-
*第 2 层模式。*在此模式下,OpenShift 集群中的一个节点获取服务的所有权,并响应该 IP 的 ARP 请求,使其在 OpenShift 集群外部可访问。由于只有该节点通告 IP,因此存在带宽瓶颈和故障转移速度慢的限制。有关详细信息,请参见 "MetalLB Layer 2 模式文档"。
-
*BGP 模式。*在此模式下,OpenShift 集群中的所有节点与路由器建立 BGP 对等会话,并通告路由以将流量转发到服务 IP。其先决条件是将 MetalLB 与该网络中的路由器集成。由于 BGP 中的哈希机制,当服务的 IP 到节点映射发生变化时,存在一定的局限性。有关详细信息,请参阅 "MetalLB BGP 模式文档"。
|
|
为了本文档的目的,我们在第 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 BGP 模式文档" 中的步骤操作。