kubernetes使用开源负载均衡metallb 支持ipvs
先开启kube-proxy
的strictARP
模式:
kubectl edit configmap -n kube-system kube-proxy
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
strictARP: true
再安装metallb:
#https://metallb.universe.tf/installation/
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml
地址池配置:
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
peers:
- peer-address: 10.0.0.1
peer-asn: 64501
my-asn: 64500
address-pools:
- name: default
protocol: bgp
addresses:
- 192.168.10.0/24
使用:
apiVersion: v1
kind: Service
metadata:
name: gin-base-svc
namespace: sre
spec:
selector:
name: gin-base
ports:
- protocol: TCP
port: 80
targetPort: 8081
type: LoadBalancer #类型选择LoadBalancer