LB IPAM은 Cilium이 LoadBalancer 타입의 Service에 IP 주소를 할당할 수 있게 해주는 기능입니다. 내가 쓰는 노트북이 사양이 별로 안좋아서 virtualbox로 테스트 환경 구성하기가 어려워서 kind를 주로 쓰는데 이때 한번 써본 기능이긴하다.2024.10.13 - [K8S/cilium] - Kind에서 Cilium으로 외부 접근 LoadBalancer 설정하기 이번에는 LB-IPAM의 동작 방식에 대해 한번 알아볼까합니다. 먼저 LB IPAM은 Cilium BGP Control Plane 및 L2 Announcements / L2 Aware LB 같은 기능과 함께 동작합니다. LB IPAM이 Service 오브젝트에 IP를 할당/부여하는 역할을 맡고, 다른 기능들이 해당 I..
이전 글에서 maglev가 어떻게 동작하는지 대충(?) 살펴봤는데 이젠 그럼 실제로 어떤지도 살펴보려고 한다.이전글 읽어보기2024.10.03 - [K8S/cilium] - Maglev: Google의 로드밸런싱 알고리즘 테스트용 클러스터 만들기클러스터 만들기kind gateway api crd 설치kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.2.0/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yamlkubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/..
Cilium을 사용하는 경우, Orbstack과 함께 하면 LoadBalancer(LB)가 자동으로 생성되는 편리함이 있습니다. 별도의 설정이 필요 없다는 점이 좋긴 하지만, 여러 개의 LB를 생성해서 테스트할 때는 불편할 수 있습니다. 그래서 이번 기회에 Kind로 클러스터를 생성하고 테스트하는 방법을 정리하려고 합니다. Cilium은 공식적으로 Kind에 설치하는 방법을 제공하고 있지만, 기능이 워낙 다양하다 보니 기본 설정 외에는 구체적인 가이드를 찾기 어렵습니다. 공식문서를 참고해서 클러스터를 생성해보고 싶다면 아래의 링크를 참고하면 됩니다.https://docs.cilium.io/en/stable/installation/kind/ 테스트 환경 구성 목표기본적으로 IPAM을 통해 대역을 설정하면..
Maglev는 Google에서 개발한 로드밸런싱 알고리즘으로, 백엔드 서버 간의 부하를 효율적으로 분산하는 역할을 합니다. 핵심 아이디어Maglev의 핵심 아이디어는 다음과 같습니다:소수 M 크기의 해시 테이블(슬롯)을 만든다.각 백엔드에 대해 “슬롯에 들어갈 순서”를 (offset, skip)으로 계산해시 테이블에 차례로 백엔드를 배정해 나가며, 슬롯이 이미 차 있으면 다음 순서로 건너뛴다. Maglev 동작 상세하게 살펴보기초기 설정 lb에 달려있는 백엔드가 이렇게 3개있고 이렇게 해시 테이블의 사이즈가 7일때 해시 알고리즘 2개를 이용해서 해시 테이블을 구성합니다. 오프셋 계산을 위한 해시 알고리즘 얼마만큼 건너뛸건지를 계산할 해시 알고리즘 이렇게 해서 다음과 같이 먼저 각각의 백엔드 값을 ..