This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.26.2. MetalLB Operator のインストール
クラスター管理者は、Operator がクラスター上の MetalLB インスタンスのライフサイクルを管理できるようにする MetallB Operator を追加できます。
インストール手順では、metallb-system
namespace を使用します。Operator をインストールし、カスタムリソースを別の namespace に設定できます。Operator は、Operator がインストールされている同じ namespace で MetalLB を起動します。
MetalLB および IP フェイルオーバーは互換性がありません。クラスターの IP フェイルオーバーを設定している場合、Operator をインストールする前に IP フェイルオーバーを削除する 手順を実行します。
26.2.1. Web コンソールを使用した OperatorHub からの MetalLB Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift Container Platform Web コンソールを使用して MetalLB Operator をインストールできます。
手順
- OpenShift Container Platform Web コンソールにログインします。
オプション: MetalLB Operator に必要な namespace を作成します。
注記この段階で namespace を作成するか、MetalLB Operator のインストールを開始するときに作成するかを選択できます。Installed Namespace リストから、プロジェクトを作成できます。
-
Administration
Namespaces に移動し、Create Namespace をクリックします。 -
Name フィールドに
metallb-system
と入力し、Create をクリックします。
-
Administration
MetalLB Operator をインストールします。
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 Filter by keyword フィールドに
metallb
と入力して、MetalLB Operator を検索し、Install をクリックします。また、インフラストラクチャー機能 でオプションをフィルターすることもできます。たとえば、非接続環境 (ネットワークが制限された環境ともしても知られる) で機能する Operator を表示するには、Disconnected を選択します。
-
Install Operator ページで、a specific namespace on the cluster を選択します。前のセクションで作成した namespace を選択するか、
metallb-system
プロジェクトを作成することを選択して、Install をクリックします。
-
OpenShift Container Platform Web コンソールで、Operators
検証
MetalLB Operator が正常にインストールされたことを確認するには、以下を行います。
-
Operators
Installed Operators ページに移動します。 MetalLB Operator が Succeeded の Status で metallb-system プロジェクトにリストされていることを確認します。
注記インストール時に、Operator は Failed ステータスを表示する可能性があります。その後インストールが成功し、Succeeded メッセージが表示された場合は、Failed メッセージを無視できます。
Operator のインストールが成功しない場合は、さらにトラブルシューティングを行うことができます。
-
Operators
Installed Operators ページに移動し、Operator Subscriptions および Install Plans タブで Status にエラーがあるかどうかを検査します。 -
Workloads
Pods ページに移動し、 metallb-system
プロジェクトの Pod のログを確認します。
-
Operators
26.2.2. CLI を使用した OperatorHub からのインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用する代わりに、CLI を使用して OperatorHub から Operator をインストールできます。oc
コマンドを使用して、Subscription
オブジェクトを作成または更新します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
MetalLB Operator が利用可能であることを確認します。
oc get packagemanifests -n openshift-marketplace metallb-operator
$ oc get packagemanifests -n openshift-marketplace metallb-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CATALOG AGE metallb-operator Red Hat Operators 9h
NAME CATALOG AGE metallb-operator Red Hat Operators 9h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow metallb-system
namespace を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: BGP および BFD メトリックが Prometheus に表示されるようにするには、次のコマンドのように namespace にラベルを付けることができます。
oc label ns metallb-system "openshift.io/cluster-monitoring=true"
$ oc label ns metallb-system "openshift.io/cluster-monitoring=true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace に Operator グループのカスタムリソースを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator グループが namespace にインストールされていることを確認します。
oc get operatorgroup -n metallb-system
$ oc get operatorgroup -n metallb-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE metallb-operator 14m
NAME AGE metallb-operator 14m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MetalLB Operator にサブスクライブします。
以下のコマンドを実行して OpenShift Container Platform のメジャーおよびマイナーバージョンを取得します。値を使用して、次の手順で
channel
値を設定します。OC_VERSION=$(oc version -o yaml | grep openshiftVersion | \ grep -o '[0-9]*[.][0-9]*' | head -1)
$ OC_VERSION=$(oc version -o yaml | grep openshiftVersion | \ grep -o '[0-9]*[.][0-9]*' | head -1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator のサブスクリプションカスタムリソースを作成するには、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
インストール計画が namespace にあることを確認します。
oc get installplan -n metallb-system
$ oc get installplan -n metallb-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CSV APPROVAL APPROVED install-wzg94 metallb-operator.4.10.0-nnnnnnnnnnnn Automatic true
NAME CSV APPROVAL APPROVED install-wzg94 metallb-operator.4.10.0-nnnnnnnnnnnn Automatic true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator がインストールされていることを確認するには、以下のコマンドを入力します。
oc get clusterserviceversion -n metallb-system \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get clusterserviceversion -n metallb-system \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Name Phase metallb-operator.4.10.0-nnnnnnnnnnnn Succeeded
Name Phase metallb-operator.4.10.0-nnnnnnnnnnnn Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
26.2.3. クラスターでの MetalLB の起動 リンクのコピーリンクがクリップボードにコピーされました!
Operator のインストール後に、MetalLB カスタムリソースの単一のインスタンスを設定する必要があります。カスタムリソースの設定後、Operator はクラスターで MetalLB を起動します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - MetalLB Operator をインストールしている。
手順
MetalLB カスタムリソースの単一のインスタンスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MetalLB コントローラーのデプロイメントと、BareLB スピーカーのデーモンセットが実行していることを確認します。
コントローラーのデプロイメントが稼働していることを確認します。
oc get deployment -n metallb-system controller
$ oc get deployment -n metallb-system controller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE controller 1/1 1 1 11m
NAME READY UP-TO-DATE AVAILABLE AGE controller 1/1 1 1 11m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スピーカーに設定されているデーモンが実行していることを確認します。
oc get daemonset -n metallb-system speaker
$ oc get daemonset -n metallb-system speaker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE speaker 6 6 6 6 6 kubernetes.io/os=linux 18m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE speaker 6 6 6 6 6 kubernetes.io/os=linux 18m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力例は、6 つの speaker Pod を示しています。クラスターの speaker Pod の数は出力例とは異なる場合があります。出力で各ノードの 1 つの Pod が表示されることを確認します。
26.2.3.1. speaker Pod の特定のノードへの限定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MetalLB Operator を使用して MetalLB を開始すると、Operator はクラスター内の各ノードでspeaker
Pod のインスタンスを開始します。ロードバランサーの IP アドレスをアドバタイズできるのは、speaker
Pod を備えたノードのみです。ノードセレクターを使用して MetalLB
カスタムリソースを設定し、speaker
Pod を実行するノードを指定できます。
speaker
Pod を特定のノードに制限する最も一般的な理由として、特定のネットワークにネットワークインターフェイスがあるノードのみがロードバランサーの IP アドレスをアドバタイズするようにすることが挙げられます。ロードバランサーの IP アドレスの宛先として、speaker
Pod が実行されているノードのみがアドバタイズされます。
speaker
Pod を特定のノードに制限し、サービスの外部トラフィックポリシーにローカル
を指定する場合は、サービスのアプリケーション Pod が同じノードにデプロイされていることを確認する必要があります。
speaker Pod をワーカーノードに制限する設定例
<.> 設定例では、スピーカー Pod をワーカーノードに割り当てるように指定していますが、ノードまたは任意の有効なノードセレクターに割り当てたラベルを指定できます。<.> この設定例では、この容認がアタッチされている Pod は、operator
を使用して キー
値と effect
値に一致するテイントを容認します。
spec.nodeSelector
フィールドを使用してマニフェストを適用した後に、oc get daemonset -n metallb-systemspeaker
コマンドを使用して Operator がデプロイした Pod の数を確認できます。同様に、oc get node -l node-role.kubernetes.io/worker =
のようなコマンドを使用して、ラベルに一致するノードを表示できます。
オプションで、アフィニティールールを使用して、ノードがどの speaker Pod をスケジュールするか、スケジュールしないかを制御することができます。また、容認の一覧を適用してこれらの Pod を制限することもできます。アフィニティールール、テイント、および容認の詳細は、追加のリソースを参照してください。