Merhaba, bu makalemizde on-prem ortamlar için yaygın olarak kullanılan metallb kurulumunu gerçekleştireceğiz.
Siz bulut sağlayıcılarında (AWS,Azure,GCP) kurulan kubernetes clusterlarında load balancer türünde bir servis oluşturduğunuzda servisiniz bir public IP adresi alır. On prem de ise public ip olmadığı için, kubernetesin sunucularının sahip olduğu bir IP adresi alarak bu servislere ulaşacağız. Bunun içinde metallb kurulumunu gerçekleştireceğiz.
Kurulumu helm ile gerçekleştireceğiz. Önceki makalemizde helm kurulumunu yazmıştır. Bu makalenin altında linki bulabilirsiniz.
Aşağıdaki URL den sizlerde metallb helm reposuna ulaşabilirsiniz.
https://artifacthub.io/packages/helm/bitnami/metallb
kubectl create ns metallb
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-metallb bitnami/metallb --namespace metallb
Kurulum işlemlerini tamamladık şimdi , bu metallb dağıtacağı IP adreslerini configure etmemiz gerekmektedir. Aşağıdaki komutlarla dosya açıp içine yine aşağıdaki kodu yapıştırıyoruz ve dosyamızı deploy ediyoruz.
nano ip.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
namespace: metallb
name: ip-assign
spec:
addresses:
- 172.34.47.150 - 172.34.47.200
kubectl apply -f ip.yaml
Burada namespace , sizin metallb yi deploy ettiğiniz namespace, 172.34.47.150-172.34.47.150 bu network benim kubernetes sunucularımın kurulu olduğu networktür.
Şimdi sırada bu ip adreslerinin L2 seviyesinde çalıştığını söylemek gerekiyor. Bu yüzden aşağıdaki komutları çalıştırıyoruz.
nano l2.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: l2
namespace: metallb
spec:
ipAddressPools:
- ip-assign
kubectl apply -f l2.yaml
Şimdi bir pod ve servis oluşturup yapmış işlemleri test edelim.
kubectl run --image=nginx webservis
kubectl expose pod webservis --port=80 --type=LoadBalancer
kubectl get svc
komutunu çalıştırdığımızda EXTERNEL-IP kısmında servisimizin belirlediğimiz IP aralığında ip adresini aldığını görebiliriz. Artık tarayıcımızda 172.34.47.150 yazdığımızda nginx'in varsayılan sayfasını görmemiz gerekmektedir.
İyi günler.
Top comments (0)