30.4. MetalLB アドレスプールの設定
クラスター管理者は、アドレスプールを追加、変更、および削除できます。MetalLB Operator は、アドレスプールカスタムリソースを使用して、MetalLB がサービスに割り当てることのできる IP アドレスを設定します。例で使用されている namespace は、namespace が metallb-system であることを前提としています。
30.4.1. IPAddressPool カスタムリソースについて リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.10 の MetalLB を使用したロードバランシングに記載されているアドレスプールカスタムリソース定義 (CRD) および API は、4.11 でも引き続き使用できます。ただし、アドレスプール CRD を使用する場合、レイヤー 2 または BGP プロトコルでの IPAddressPools のアドバタイズに関連する拡張機能はサポートされません。
次の表で、IPAddressPool カスタムリソースのフィールドについて説明します。
| フィールド | 型 | 説明 |
|---|---|---|
|
|
|
アドレスプールの名前を指定します。サービスを追加する場合は、 |
|
|
| アドレスプールの namespace を指定します。MetalLB Operator が使用するものと同じ namespace を指定します。 |
|
|
|
オプション: |
|
|
| MetalLB Operator がサービスに割り当てる IP アドレスのリストを指定します。1 つのプールで複数の範囲を指定できます。それらはすべて同じ設定を共有します。CIDR 表記で各範囲を指定するか、開始および終了の IP アドレスをハイフンで区切って指定します。 |
|
|
|
オプション: MetalLB がこのプールから IP アドレスを自動的に割り当てるかどうかを指定します。 |
30.4.2. アドレスプールの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターにアドレスプールを追加して、MetaLLB がロードバランサーサービスに割り当てることのできる IP アドレスを制御できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
以下の例のような内容で、
ipaddresspool.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example labels:1 zone: east spec: addresses: - 203.0.113.1-203.0.113.10 - 203.0.113.65-203.0.113.75- 1
IPAddressPoolに割り当てられたこのラベルは、BGPAdvertisementCRD のipAddressPoolSelectorsによって参照され、IPAddressPoolをアドバタイズメントに関連付けることができます。
IP アドレスプールの設定を適用します。
$ oc apply -f ipaddresspool.yaml
検証
アドレスプールを表示します。
$ oc describe -n metallb-system IPAddressPool doc-example出力例
Name: doc-example Namespace: metallb-system Labels: zone=east Annotations: <none> API Version: metallb.io/v1beta1 Kind: IPAddressPool Metadata: ... Spec: Addresses: 203.0.113.1-203.0.113.10 203.0.113.65-203.0.113.75 Auto Assign: true Events: <none>
doc-example などのアドレスプール名と IP アドレス範囲が出力に表示されることを確認します。
30.4.3. アドレスプールの設定例 リンクのコピーリンクがクリップボードにコピーされました!
30.4.3.1. 例: IPv4 および CIDR 範囲 リンクのコピーリンクがクリップボードにコピーされました!
CIDR 表記で IP アドレスの範囲を指定できます。CIDR 表記と、ハイフンを使用する表記を組み合わせて下層と上限を分けることができます。
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: doc-example-cidr
namespace: metallb-system
spec:
addresses:
- 192.168.100.0/24
- 192.168.200.0/24
- 192.168.255.1-192.168.255.5
30.4.3.2. 例: IP アドレスの予約 リンクのコピーリンクがクリップボードにコピーされました!
MetalLB がプールから IP アドレスを自動的に割り当てないように autoAssign フィールドを false に設定できます。サービスを追加する場合は、プールから特定の IP アドレスを要求するか、そのプールから任意の IP アドレスを要求するためにアノテーションでプール名を指定できます。
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: doc-example-reserved
namespace: metallb-system
spec:
addresses:
- 10.0.100.0/28
autoAssign: false
30.4.3.3. 例: IPv4 および IPv6 アドレス リンクのコピーリンクがクリップボードにコピーされました!
IPv4 および IPv6 を使用するアドレスプールを追加できます。複数の IPv4 の例と同様に、addresses 一覧で複数の範囲を指定できます。
サービスに、単一の IPv4 アドレス、単一の IPv6 アドレス、またはその両方を割り当てるかどうかは、サービスの追加方法によって決まります。spec.ip Familiesフィールドとspec.ip Family Policyフィールドでは、IP アドレスをサービスに割り当てる方法を制御します。
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: doc-example-combined
namespace: metallb-system
spec:
addresses:
- 10.0.100.0/28
- 2002:2:2::1-2002:2:2::100
30.4.5. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
- BGP モードについては、 MetalLBBGP ピアの設定を参照してください。
- MetalLB を使用するためのサービスの設定