Kubernetes集群(z-k8s)配置Cilium集成MetalLB

在Cilium网络部署MetalLB 为裸金属服务器(虚拟机)提供了替代常规云厂商的负载均衡能力,这样就可以摆脱云厂商的依赖,完全独立构建Kubernetes集群。

备注

如果Kubernetes集群不部署 Kubernetes MetalLB 负载均衡 ,就会导致 Cilium Kubernetes Ingress 无法分配 EXTERNAL-IP ,即无法对外服务

安装

  • 在集群安装MetalLB:

kubectl apply 安装 MantalLB
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.4/config/manifests/metallb-native.yaml

配置

  • 创建 z-k8s-ip-pool.yaml

为负载均衡定义IPAddressPool CR
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: z-k8s-ip-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.6.151-192.168.6.198
  • 创建IP池:

负载均衡创建IPAddressPool
kubectl create -f z-k8s-ip-pool.yaml
  • 配置 z-k8s-ip-pool_announce.yaml :

申明IP地址池的ARP公告
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: z-k8s-ip-pool
  namespace: metallb-system
spec:
  ipAddressPools:
  - z-k8s-ip-pool
  • 执行IP地址池ARP声明:

申明IP地址池的ARP公告
kubectl create -f z-k8s-ip-pool_announce.yaml

完成 Kubernetes MetalLB 负载均衡 部署配置之后,部署 Kubernetes集群(z-k8s)部署Cilium Ingress 就能够实现服务输出