cilium을 사용하면 HostFirewall도 설정이 가능합니다. 이번 글에서는 Hostfirewall을 테스트해보도록 하겠습니다. 테스트 환경 구성하기cilium 설치하기가장 기본적으로 구성한다면 아래와 같이 구성할 수 있습니다. devices는 cilium이 구성될 인터페이스를 지정하면 됩니다. 지정하지 않을 경우 자동으로 선택되게 됩니다. helm install cilium cilium/cilium --version 1.18.1 \ --namespace kube-system \ --set hostFirewall.enabled=true \ --set devices='{ethX,ethY}' 자동으로 선택되게 하였을 경우 어떤 인터페이스가 선택되었는지 확인하고자 한다면 다음의 명령어로 확인이 가..
Cilium 문서에서도 나오듯 TPROXY는 클라이언트 트래픽의 목적지 주소를 바꾸지 않고 프록시로 “투명하게” 가로채는 방식입니다.NAT 없이 원래 목적지(IP/포트)를 보존하므로, 앱에서 정책/로깅을 정확하게 할 수 있습니다. Non-local Socket BindingTPROXY를 쓰려면 먼저 로컬에 없는 IP로도 리슨할 수 있어야 합니다.클라이언트가 특정 서버로 요청을 보냈을 때, 중간 프록시가 그 주소 그대로 받아야 하기 때문입니다. 이걸 비로컬 소켓 바인딩(Non-local Socket Binding) 이라 부릅니다. 예시사용자가 100.0.0.1:80 으로 접속중간 프록시는 그 주소 그대로 받고 싶음문제: 프록시 호스트엔 보통 100.0.0.1 이 없어서 기본 규칙에선 해당 주소로 bind(..
cilium에서 제공하는 bgp 테스트 환경 구성이 있는데 이게 잘 동작을 안해서 엄청 고생을 하다. 도전과제겸 정리해봅니다.공식 문서에서는 아래와 같이 간단하게 구성하고있는데 mac이라 그런지 바로 동작을 잘 안하네요.2025.08.15 - [K8S/cilium] - containerlab을 사용하여 cilium + BGP 테스트 환경 만들기 사전 준비테스트 환경은 mac arm64 이며 orbstack을 사용할 예정입니다. vm 생성하기mac에서는 바로 containerlab을 사용할 수 없어 orbstack으로 vm을 생성해줍니다. orbstack을 실행 후 명령어를 입력하세요orb create ubuntu linux 이렇게 vm을 생성하면 쉽게 서버에 접근이 가능합니다.ssh orb kind로 클..
이전에 cluster mesh 구성을 해본 경험이 있긴 한데 연결 후 어떤 설정이 있는지 어떻게 동작하는지까지 확인을 해보려 합니다.2024.10.13 - [K8S/cilium] - Cilium ClusterMesh 구성해보기테스트 환경 만들기kind k8s 클러스터 west, east 배포해봅니다.kind create cluster --name west --image kindest/node:v1.33.2 --config - 여기에 테스트에 필요한 도구들도 설치해봅니다.docker exec -it west-control-plane sh -c 'apt update && apt install tree psmisc lsof wget net-tools dnsutils tcpdump ngrep iputils-p..
https://youtu.be/AVEBcZc0YsQ?feature=shared 이 발표에서는 쿠버네티스 환경에서 성능 병목을 제거하고, 최신 커널 기능과 Cilium의 혁신들을 통해 네트워킹 성능을 극한까지 끌어올린 과정을 소개했습니다.아래는 발표 내용을 토대로 정리한 주요 내용입니다.https://isovalent.com/blog/post/cilium-netkit-a-new-container-networking-paradigm-for-the-ai-era/ Cilium netkit: The Final Frontier in Container Networking PerformanceIn this blog post, we're looking at Cilium's support for netkit - a rev..
네트워크 성능 최적화는 많은 엔지니어들에게 중요한 과제입니다. 특히, 고성능 네트워크 환경에서는 패킷 처리 속도를 높이고 지연 시간을 줄이는 것이 필수적입니다. 이 글에서는 XDP(eXpress Data Path)와 Bonding 인터페이스를 결합하여 네트워크 성능을 최대화하는 방법과 이를 실제로 설정하는 방법을 설명합니다. 이 글에서 다루지 않는것Bonding 설정의 기본: Bonding 인터페이스를 어떻게 설정하는지에 대한 기본적인 설명.XDP의 깊은 기술적 내용: XDP의 상세한 내부 동작 방식에 대한 설명. XDP란?XDP(eXpress Data Path)는 네트워크 패킷이 운영체제에 도달하기 전에 빠르게 처리할 수 있게 해주는 Linux 기능입니다. 이렇게 하면 네트워크 성능을 크게 높이고, 데..
이전 글에서 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/..
irqbalance와 CPU Pinning의 원리시스템에서 발생하는 하드웨어 인터럽트(IRQ)는 프로세서가 작업을 수행하는 동안 네트워크 패킷 처리, 디스크 I/O 등 다양한 작업을 중단시키는 역할을 한다. irqbalance는 이러한 인터럽트를 여러 CPU 코어에 분산시켜 특정 코어에 과부하가 걸리지 않도록 도와준다. 하지만 모든 환경에서 항상 효과적이지는 않다. 특히 Cilium과 같이 높은 네트워크 성능이 필요한 경우, 인터럽트가 무작위로 여러 코어에 분산되면 캐시 미스가 발생하고 인터럽트 처리 지연이 늘어나면서 성능이 저하될 수 있다. 이러한 문제를 해결하기 위해 CPU Pinning을 적용하면 특정 NIC 인터럽트를 특정 CPU 코어에 고정할 수 있다. 이를 통해 CPU 코어와 메모리 간의 캐시..