23.3. MetalLB アドレスプールの設定
クラスター管理者は、アドレスプールを追加、変更、および削除できます。MetalLB Operator は、アドレスプールカスタムリソースを使用して、MetalLB がサービスに割り当てることのできる IP アドレスを設定します。
23.3.1. アドレスプールのカスタムリソースについて リンクのコピーリンクがクリップボードにコピーされました!
アドレスプールカスタムリソースのフィールドは、以下の表で説明されています。
| フィールド | 型 | 説明 |
|---|---|---|
|
|
|
アドレスプールの名前を指定します。サービスを追加する場合は、 |
|
|
| アドレスプールの namespace を指定します。MetalLB Operator が使用するものと同じ namespace を指定します。 |
|
|
|
ロードバランサー IP アドレスをピアノードに通知するためのプロトコルを指定します。サポートされている値は |
|
|
|
オプション: MetalLB がこのプールから IP アドレスを自動的に割り当てるかどうかを指定します。 |
|
|
| サービスに割り当てる MetalLB の IP アドレスの一覧を指定します。1 つのプールに複数の範囲を指定できます。CIDR 表記で各範囲を指定するか、開始および終了の IP アドレスをハイフンで区切って指定します。 |
23.3.2. アドレスプールの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターにアドレスプールを追加して、MetaLLB がロードバランサーサービスに割り当てることのできる IP アドレスを制御できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
以下の例のような内容で、
addresspool.yamlなどのファイルを作成します。apiVersion: metallb.io/v1alpha1 kind: AddressPool metadata: namespace: metallb-system name: doc-example spec: protocol: layer2 addresses: - 203.0.113.1-203.0.113.10 - 203.0.113.65-203.0.113.75アドレスプールの設定を適用します。
$ oc apply -f addresspool.yaml
検証
アドレスプールを表示します。
$ oc describe -n metallb-system addresspool doc-example出力例
Name: doc-example Namespace: metallb-system Labels: <none> Annotations: <none> API Version: metallb.io/v1alpha1 Kind: AddressPool Metadata: ... Spec: Addresses: 203.0.113.1-203.0.113.10 203.0.113.65-203.0.113.75 Auto Assign: true Protocol: layer2 Events: <none>
doc-example などのアドレスプール名と IP アドレス範囲が出力に表示されることを確認します。
23.3.3. アドレスプールの設定例 リンクのコピーリンクがクリップボードにコピーされました!
23.3.3.1. 例: IPv4 および CIDR 範囲 リンクのコピーリンクがクリップボードにコピーされました!
CIDR 表記で IP アドレスの範囲を指定できます。CIDR 表記と、ハイフンを使用する表記を組み合わせて下層と上限を分けることができます。
apiVersion: metallb.io/v1beta1
kind: AddressPool
metadata:
name: doc-example-cidr
namespace: metallb-system
spec:
protocol: layer2
addresses:
- 192.168.100.0/24
- 192.168.200.0/24
- 192.168.255.1-192.168.255.5
23.3.3.2. 例: IP アドレスの予約 リンクのコピーリンクがクリップボードにコピーされました!
MetalLB がプールから IP アドレスを自動的に割り当てないように autoAssign フィールドを false に設定できます。サービスを追加する場合は、プールから特定の IP アドレスを要求するか、またはそのプールから任意の IP アドレスを要求するためにアノテーションでプール名を指定できます。
apiVersion: metallb.io/v1beta1
kind: AddressPool
metadata:
name: doc-example-reserved
namespace: metallb-system
spec:
protocol: layer2
addresses:
- 10.0.100.0/28
autoAssign: false
23.3.3.3. 例: IPv6 アドレスプール リンクのコピーリンクがクリップボードにコピーされました!
IPv6 を使用するアドレスプールを追加できます。以下の例は、1 つの IPv6 範囲を示しています。ただし、複数の IPv4 の例と同様に、addresses 一覧で複数の範囲を指定できます。
apiVersion: metallb.io/v1beta1
kind: AddressPool
metadata:
name: doc-example-ipv6
namespace: metallb-system
spec:
protocol: layer2
addresses:
- 2002:2:2::1-2002:2:2::100