简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。
安装 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 文档中的步骤进行操作"此处"。