Cài đặt MetalLB để cấp IP cho K8s service type LoadBalancer

Cài đặt MetalLB để cấp IP cho K8s service type LoadBalancer

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

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply