4.6. MetalLB を使用するためのサービスの設定
予測可能なネットワークエンドポイントを確保するため、MetalLB が ロードバランサー タイプのサービスに IP アドレスを割り当てる方法を制御します。特定の IP アドレスまたは IP アドレスプールを要求することで、アプリケーションが特定のネットワークアドレス計画に合致した有効な IP アドレス割り当てを受けられることが保証されます。
4.6.1. 特定の IP アドレスの要求 リンクのコピーリンクがクリップボードにコピーされました!
サービスに特定の静的 IP アドレスを割り当てるには、サービス仕様の spec.loadBalancerIP パラメーターを設定します。
MetalLB は、設定済みのアドレスプールから要求されたアドレスを割り当てようと試み、指定された静的なネットワークエンドポイントでサービスにアクセスできるようにします。要求された IP アドレスが範囲外の場合、MetalLB は警告を報告します。
特定の IP アドレスのサービス YAML の例
apiVersion: v1
kind: Service
metadata:
name: <service_name>
annotations:
metallb.io/address-pool: <address_pool_name>
spec:
selector:
<label_key>: <label_value>
ports:
- port: 8080
targetPort: 8080
protocol: TCP
type: LoadBalancer
loadBalancerIP: <ip_address>
MetalLB が要求された IP アドレスを割り当てられない場合、サービスの EXTERNAL-IP には <pending> と表示され、実行中の oc describe service <service_name> には次の例のようなイベントが含まれます。
MetalLB が要求された IP アドレスを割り当てることができない場合のイベントの例
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning AllocationFailed 3m16s metallb-controller Failed to allocate IP for "default/invalid-request": "4.3.2.1" is not allowed in config