前提条件

  • kube-vip

安装云控制管理器

官方文档:On-Premises (kube-vip-cloud-controller) | kube-vip

wget https://github.com/kube-vip/kube-vip-cloud-provider/blob/v0.0.10/manifest/kube-vip-cloud-controller.yaml
kubectl apply -f kube-vip-cloud-controller.yaml

创建CIDR

快速配置,创建全局LB网段

kubectl create configmap -n kube-system kubevip --from-literal range-global=172.25.2.51-172.25.2.100

高级配置

apiVersion: v1
kind: ConfigMap
metadata:
  name: kubevip
  namespace: kube-system
data:
  cidr-default: 192.168.0.200/29                      # default命名空间CIDR
  range-development: 192.168.0.210-192.168.0.219      # development命名空间IP池
  cidr-finance: 192.168.0.220/29,192.168.0.230/29     # finance命名空间CIDR
  cidr-global: 192.168.0.240/29                       # 全局CIDR

如果service不使用kube-vip提供的LB,在servicemetadata.annotations处配置kube-vip.io/ignore=true 告诉kube-vip 忽略掉这个服务

设置service为LoadBalancer

kubectl edit svc -n namespace svc

配合MetalLB使用kube-vip

原文地址:【故障排查】kube-vip 与 MetalLB LoadBalancer Layer2 ARP冲突 - Elijah Blog (sreok.cn)

原文地址:使用MetalLB为k8s集群提供负载均衡服务(Layer 2模式) - Elijah Blog (sreok.cn)