Skip to main content
NetApp Solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Instalando balanceadores de carga MetalLB: Red Hat OpenShift com NetApp

Colaboradores

Esta página lista as instruções de instalação e configuração do balanceador de carga MetalLB.

O MetalLB é um balanceador de carga de rede auto-hospedado instalado no seu cluster OpenShift que permite a criação de serviços OpenShift de balanceador de carga tipo em clusters que não são executados em um provedor de nuvem. As duas principais caraterísticas do MetalLB que trabalham em conjunto para apoiar os serviços LoadBalancer são a alocação de endereços e o anúncio externo.

Opções de configuração MetalLB

Com base na forma como a MetalLB anuncia o endereço IP atribuído aos serviços LoadBalancer fora do cluster OpenShift, opera em dois modos:

  • Modo de camada 2. Nesse modo, um nó no cluster OpenShift assume a propriedade do serviço e responde às solicitações ARP para que o IP possa ser acessado fora do cluster OpenShift. Como apenas o nó anuncia o IP, ele tem um gargalo de largura de banda e limitações de failover lento. Para obter mais informações, consulte a documentação "aqui".

  • Modo BGP. Neste modo, todos os nós no cluster OpenShift estabelecem sessões de peering BGP com um roteador e anunciam as rotas para encaminhar o tráfego para os IPs de serviço. O pré-requisito para isso é integrar o MetalLB com um roteador nessa rede. Devido ao mecanismo de hash no BGP, ele tem certa limitação quando o mapeamento IP-to-Node para um serviço muda. Para obter mais informações, consulte a documentação "aqui".

Observação Para efeitos deste documento, estamos a configurar o MetalLB no modo layer-2.

Instalar o balanceador de carga MetalLB

  1. Transfira os recursos do 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. Edite o arquivo metallb.yaml e remova spec.template.spec.securityContext do controlador implantação e do alto-falante DaemonSet.

    Linhas a serem excluídas:

    securityContext:
      runAsNonRoot: true
      runAsUser: 65534
  3. Crie o metallb-system namespace.

    [netapp-user@rhel7 ~]$ oc create -f namespace.yaml
    namespace/metallb-system created
  4. Crie o 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. Antes de configurar o alto-falante MetalLB, conceda ao alto-falante DaemonSet elevado Privileges para que ele possa executar a configuração de rede necessária para fazer os balanceadores de carga funcionar.

    [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. Configure o MetalLB criando um ConfigMap no metallb-system namespace.

    [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. Agora, quando os serviços do loadbalancer são criados, o MetalLB atribui um externalIP aos serviços e anuncia o endereço IP respondendo às solicitações ARP.

    Observação Se desejar configurar o MetalLB no modo BGP, ignore o passo 6 acima e siga o procedimento na documentação do MetalLB "aqui".