metallb用来实现在私有化搭建的裸机环境中实现负载均衡器的功能,在没有云环境的情况下通过metallb将service暴露到网络环境中,供其他系统访问。
https://metallb.universe.tf/
部署metallb
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml
创建配置
metallb监视名为config或metallb-config(helm部署)的configmap资源,我们创建这个资源之后它就开始工作了。
下面是layer 2模式下的配置示例,其中的addresses配置为预留的ip地址段,可配置多个。
[root@master3 ~]# cat metallb-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
# 可配置为下列形式或者192.168.1.0/24形式,根据预留的网段具体决定
# 可配置多个
- 10.77.1.220-10.77.1.240
kubectl apply -f metallb-configmap.yaml
测试
[root@master3 ~]# kubectl run nginx --image=nginx --port=80
[root@master3 ~]# kubectl expose pod nginx --port=80 --target-port=80 --type=LoadBalancer
[root@master3 ~]# kubectl get svc…
kubernetes网络 – metallb讲解
发布于