MetalLB 要分配 IP 需要套用他們的設定檔,這篇將會講解如何建立 IP Pool 跟分配。
MetalLB 在上篇文章安裝完畢,但系統還不具有分配 IP 的功能,我們就要讓他有分配 IP 的能力。
廣播分兩種模式:Layer 2 mode
跟 BGP mode
。
Layer 2 mode
廣播利用 ARP (IPv4) 跟 NDP (IPv6),好處是可以在任何網卡上使用,不需要再有額外設備,像是 Router。
BGP mode
就需要 BGP Peering 廣播使用 IP,然而 BGP 通常應用於比較大型的網路結構中。
BGP mode
部分筆者就沒有使用過了,需要等有設備才能測試實驗,而且通常 Layer 2 mode
廣播就夠用了。
這裡就按照 MetalLB 官網上的 Usage **>** Full example
做設定。
我會分配 192.168.200.200 - 192.168.200.209
作為 External IP:
# 1. Save as `IPAddressPool.yaml`
# 2. In bash, `kubectl apply -f IPAddressPool.yaml`
# 3. If you want to remove, `kubectl delete -f IPAddressPool.yaml`
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool # IP Pool 的名字
namespace: metallb-system # Namespace
spec:
addresses:
- 192.168.200.200-192.168.200.209 # 打上 IP Range,或者 CIDR 也是可以
建立完 IP Pool 之後,就可以建立廣播了。
這裡就按照 MetalLB 官網上的 Configuration > Advanced L2 configuration
做設定。
也可以指定 .spec.ipAddressPools
套用指定的 IP Pool:
# 1. Save as `L2Advertisement.yaml`
# 2. In bash, `kubectl apply -f L2Advertisement.yaml`
# 3. If you want to remove, `kubectl delete -f L2Advertisement.yaml`
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
#spec: # 沒有填寫 Spec 就是對於全部的 namespace 下的 IPAddressPool 都套用
# ipAddressPools:
# - first-pool # 對於 first-pool 會套用廣播
最後就把他們 Apply 進去:
kubectl apply -f IPAddressPool.yaml
kubectl apply -f L2Advertisement.yaml
這樣設定上去,確定 MetalLB 沒有 Crash 就好,要怎麼驗證這東西是好的呢?下一篇將會安裝 Istio 來驗證這個設定是否成功,並且在這裡裝上 Layer 7 的 Load Balancer。
本系列內容也會同步貼到我的 Blog https://blog.yangjerry.tw 歡迎來我的 Blog 點一下 RSS 追蹤,那我們就下一篇文章見啦!