Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

MetalLB ロードバランサーのインストール: Red Hat OpenShift とNetApp

共同作成者 banum-netapp kevin-hoke

このページでは、MetalLB ロード バランサーのインストールおよび構成の手順について説明します。

MetalLB は、OpenShift クラスターにインストールされるセルフホスト型ネットワーク ロード バランサーであり、クラウド プロバイダーで実行されないクラスターでロード バランサー タイプの OpenShift サービスの作成を可能にします。 LoadBalancer サービスをサポートするために連携して動作する MetalLB の 2 つの主な機能は、アドレス割り当てと外部アナウンスです。

MetalLB 構成オプション

MetalLB は、OpenShift クラスターの外部の LoadBalancer サービスに割り当てられた IP アドレスをアナウンスする方法に基づいて、次の 2 つのモードで動作します。

  • *レイヤー2モード*このモードでは、OpenShiftクラスター内の1つのノードがサービスの所有権を取得し、そのIPアドレスに対するARPリクエストに応答して、OpenShiftクラスターの外部からアクセスできるようにします。ノードのみがIPアドレスをアドバタイズするため、帯域幅のボトルネックとフェイルオーバーの遅延という制限が生じます。詳細については、"MetalLB レイヤー2モードのドキュメント"を参照してください。

  • *BGPモード*このモードでは、OpenShiftクラスタ内のすべてのノードがルータとBGPピアリングセッションを確立し、サービスIPにトラフィックを転送するためのルートをアドバタイズします。そのためには、MetalLBをそのネットワーク内のルーターと統合することが前提条件となります。BGPのハッシュメカニズムのため、サービスのIP対ノードマッピングが変更される際には、一定の制限が生じます。詳細については、"MetalLB BGPモードのドキュメント"を参照してください。

メモ このドキュメントでは、MetalLB をレイヤー 2 モードで構成します。

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`削除する `spec.template.spec.securityContext`コントローラーのデプロイメントとスピーカーの DaemonSet から。

    削除する行:

    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 スピーカーを構成する前に、スピーカーの 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"
  6. 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
  7. ロードバランサ サービスが作成されると、MetalLB はサービスに外部 IP を割り当て、ARP 要求に応答して IP アドレスをアドバタイズします。

    メモ MetalLBをBGPモードで設定する場合は、上記の手順6をスキップして、"MetalLB BGPモードのドキュメント"の手順に従ってください。