MetalLB ロードバランサのインストール:ネットアップでの Red Hat OpenShift
このページでは、 MetalLB ロードバランサのインストールおよび設定手順を示します。
MetalLB は、 OpenShift クラスタにインストールされた自己ホスト型ネットワークロードバランサであり、クラウドプロバイダで実行されないクラスタでタイプロードバランサの OpenShift サービスを作成できます。LoadBalancer サービスをサポートするために連携する MetalLB の 2 つの主な機能は、アドレス割り当てと外部アナウンスメントです。
MetalLB 設定オプション
MetalLB が OpenShift クラスタの外部でロードバランササービスに割り当てられた IP アドレスをどのようにアナウンスするかに基づいて、次の 2 つのモードで動作します。
-
*レイヤ2モード。*このモードでは、OpenShiftクラスタ内の1つのノードがサービスの所有権を取得し、そのIPに対するARP要求に応答してOpenShiftクラスタの外部に到達できるようにします。IP をアドバタイズするのはノードだけなので、帯域幅のボトルネックと低速フェールオーバーの制限があります。詳細については、のドキュメントを参照して"ここをクリック"ください。
-
* BGPモード。*このモードでは、OpenShiftクラスタ内のすべてのノードがルータとのBGPピアリングセッションを確立し、トラフィックをサービスIPに転送するルートをアドバタイズします。このための前提条件は、 MetalLB をそのネットワーク内のルータと統合することです。BGP のハッシュメカニズムにより、サービスの IP-to-Node マッピングが変更されることがあります。詳細については、のドキュメントを参照して"ここをクリック"ください。
|
このマニュアルでは、レイヤ 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`ます。-
削除する行数: *
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 スピーカを設定する前に、スピーカ DemonSet の昇格特権を与えて、ロードバランサを動作させるために必要なネットワーク設定を実行できるようにします。
[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-system`ネームスペースにを作成してMetalLBを設定し `ConfigMap`ます。
[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 は外部 IP をサービスに割り当て、 ARP 要求に応答して IP アドレスをアドバタイズします。
MetalLBをBGPモードで設定する場合は、上記の手順6をスキップし、MetalLBのマニュアルに記載されている手順に従います"ここをクリック"。