创建安装目录
mkdir /etc/kubernetes/MetalLB
修改kube-proxy配置
kubectl edit configmap -n kube-system kube-proxy
mode: "ipvs" #添加ipvs
strictARP: true #false改为true
创建namespace
kubectl create namespace metallb-system
创建ip池
cat >IPAddressPool.yaml<<EOF
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: planip-pool #这里与下面的L2Advertisement的ip池名称需要一样
namespace: metallb-system
spec:
addresses:
- 10.0.0.35-10.0.0.60 #自定义ip段
EOF
关联ip池
cat >L2Advertisement.yaml<<EOF
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: planip-pool
namespace: metallb-system
spec:
ipAddressPools:
- planip-pool #这里需要跟上面ip池的名称保持一致
EOF
获取yaml文件
https://github.com/metallb/metallb/blob/v0.14.5/config/manifests/metallb-native.yaml
创建Metallb
kubectl apply -f /etc/kubetnetes/MetalLB/IPAddressPool.yaml
kubectl apply -f /etc/kubetnetes/MetalLB/L2Advertisement.yaml
kubectl apply -f /etc/kubetnetes/MetalLB/metallb-native.yaml
查看pod
[root@test-k8s-01 MetalLB]# kubectl get pod -n metallb-system
NAME READY STATUS RESTARTS AGE
controller-86f5578878-69gx6 1/1 Running 0 132m
speaker-qkd54 1/1 Running 0 132m
speaker-r8dxl 1/1 Running 0 132m
speaker-s2lzm 1/1 Running 0 132m