Link trang chủ hướng dẫn cài đặt của MetalLB
https://metallb.universe.tf/installation/
1. Bật strictARP
Nếu sử dụng kube-proxy với IPVS từ phiên bản Kubernetes v1.14.2 phải bật chế độ strict ARP (strictARP: true)
Sửa bằng lệnh
kubectl edit configmap -n kube-system kube-proxy
data:
ipvs:
strictARP: true
Chạy bằng cách replace
kubectl get configmap kube-proxy -n kube-system -o yaml | sed -e "s/strictARP: false/strictARP: true/" | kubectl apply -f - -n kube-system
2. Cài đặt
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
Định nghĩa dải IP cho phép LB lấy gán.
cat IPAddressPool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
– 10.1.1.129-10.1.1.155
Apply file IPAddressPool.yaml
kubectl create -f ./IPAddressPool.yaml
kubectl get svc -A
Thực hiện quảng bá
cat L2Advertisement.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
kubectl apply -f L2Advertisement.yaml
L2 sẽ chỉ cấp phát IP và quảng bá các service ty loadbalancer
kubectl get svc -A
Lọc các service có ip 10.1.1.
kubectl get svc -A |grep ‘10.1.1.’
ingress-nginx ingress-nginx-controller LoadBalancer 10.106.137.216 10.1.1.129 80:20425/TCP,443:21842/TCP 18d
Như vậy ta thấy IP external (cùng lớp mạng cài K8s) mà đã được gán cho ingress