본문 바로가기
728x90

분류 전체보기114

Cilium 기반 Ingress와 Gateway API Cilium-Ingress kubernetes의 Ingress에 대한 설명은 이전 블로그 게시글을 참고해주세요. Cilium-Ingress 이란?Cilium Ingress는 eBPF 기반 네트워킹과 Envoy L7 Proxy를 결합하여 기존의 Ingress Controller와 다른 방식으로 동작합니다. 특히, Source IP의 가시성을 유지하고, 네트워크 정책(CiliumNetworkPolicy)의 통합, 유연한 로드밸런서 모드, Host Network 모드 지원 등에서 강점이 있습니다. 또한, CiliumNetworkPolicy을 통해 Ingress 트래픽을 세세하게 제어할 수 있습니다. 설정 방법Cilium은 kubernetes Ingress 리소스를 ingressClassName: cili.. 2025. 8. 21.
Cilium BGP Control Plane과 FRRouting으로 외부 트래픽 처리 들어가며Kubernetes 클러스터 내에서 Pod 간 통신은 CNI 플러그인에 의해 자동으로 설정되지만, 클러스터 외부와의 통신 경로를 동적으로 구성하려면 추가적인 네트워크 연동이 필요합니다. 특히 BGP(Border Gateway Protocol)를 활용하여 외부에서 클러스터 내 Pod/Service 네트워크로의 접근을 가능하게 만들 수 있습니다. Cilium은 BGP Control Plane 기능을 통해 Kubernetes 노드의 Pod CIDR 등을 외부로 광고(advertise)할 수 있는 기능을 제공합니다. 그러나 Cilium 자체는 BGP 피어로서 동작할 수 있지만, 클러스터 외부에 존재하는 router의 역할까지는 수행하지 않습니다. Cilium BGP Control Plane의 구성 요소.. 2025. 8. 16.
Cilium Overlay Network 실습 들어가며Kubernetes 환경에서는 기본적으로 모든 노드가 같은 네트워크 대역에 있을 때, 별다른 추가 설정 없이도 Pod 간 통신이 가능합니다.왜냐하면 Kubernetes가 각 Pod에 고유한 IP인 PodIP를 부여하고, 해당 IP들 간의 라우팅을 자동으로 구성해주기 때문입니다. 이때 Pod 간 통신은 ClusterIP(Service)를 거치지 않고 직접 Pod IP로 이루어집니다. 하지만 실제로 운영을 하다보면 모든 노드들을 같은 subnet에 배치하기 어렵습니다.AWS EKS는 VPC CNI를 사용해 예외적인 구조를 가지므로 여기서는 논외로 합니다. 이러한 경우 기본적인 CNI로는 Pod간 통신이 불가능합니다. 이번에 해본 실습은 Control Plane 노드(k8s-ctr)와 Worker.. 2025. 8. 6.
Cilium 환경에서 NodeLocal DNSCache 적용하기 NodeLocalDNSNodeLocalDNS란? NodeLocal DNSCache는 Kubernetes 클러스터의 각 Node에서 DNS 캐싱 기능을 수행하는 Agent를 DaemonSet으로 실행하여 DNS 성능과 안정성을 개선하는 기능입니다. 기본적인 kubernetes 아키텍처에서는 모든 DNS 쿼리가 kube-dns/CoreDNS의 Service IP를 통해 전달되는데, 이는 kube-proxy에 의해 추가된 iptables DNAT 규칙을 거쳐 최종적으로 kube-dns/CoreDNS 엔드포인트로 변환되었습니다. 하지만 이러한 방식은 경로가 복잡하고 트래픽에 대해 추적을 할 때나 디버깅할 때 매우 복잡하고 네트워크 복잡도가 높아 성능상 비효율적입니다. NodeLocal DNSCache는 각 N.. 2025. 7. 30.
Cilium IPAM Mode와 IPAM 모드 변경 실습 IPAMIPAM이란?흔히 IPAM (IP Address Management)은 네트워크에서 IP 주소를 정리하고 관리하는 시스템을 말합니다. IPAM 예시기업에서 직원용 PC에 IP 자동 할당기업에서 직원용 PC에 IP를 할당할 때에 IPAM에서 DHCP 서버와 연동해 사용 가능한 IP 주소 풀을 정의하고, PC를 네트워크에 연결하면 DHCP가 자동으로 IP를 할당하고 IPAM이 기록합니다.학교에서 학생들의 기기에 대한 IP 추적IPAM에서 각 교실이나 사용자 그룹별로 서브넷을 나누고 IP를 예약합니다. 그 후 기기 접속 시 IPAM은 할당된 IP와 접속 이력을 저장해 누가 언제 사용했는지 추적이 가능합니다. Cilium에서의 IPAMCilium은 Kubernetes 네트워크를 구성할 때, Pod에 할당.. 2025. 7. 28.
Cilium Hubble을 활용한 L7 네트워크 가시성 및 메트릭 수집 실습 HubbleHubble이란?Hubble에 대한 내용은 이전의 포스팅한 내용으로 대체합니다.Hubble은 클라우드 네이티브 워크로드를 위한 완전 분산형 네트워킹 및 보안 가시성 플랫폼입니다. Hubble은 오픈 소스 소프트웨어이며, Cilium과 eBPF 위에 구축되어 서비스 간의 통신과 동작뿐만 아니라 네트워킹 인프라에 대해 깊이 있는 가시성을 완전히 투명한 방식으로 제공 합니다. 요약하자면 Hubble은 Cilium의 eBPF 기반 datapath 위에서 동작하며, gRPC를 통해 수집된 L3~L7 네트워크 이벤트를 실시간으로 스트리밍하고, DNS, HTTP, gRPC 등 주요 프로토콜에 대한 가시성과 보안 분석을 가능하게 한다. 실습Hubble 환경 구성 이전 글처럼 위와 같은 환경을 Vagr.. 2025. 7. 26.
eBPF 기반 Cilium을 통한 K8s 네트워크 트래픽 분석 실습 더보기이 내용은 CloudNet@에서 진행하는 Cilium 스터디를 참여하면서 공부하는 내용을 기록하며, CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다.들어가며kubernetes는 기본적으로 kube-proxy를 통해 네트워크를 처리합니다. 하지만 iptables를 사용하는 kube-proxy의 경우 cluster가 커지고, 서비스가 많아질수록 iptables의 규칙이 수천 개 이상으로 증가하게 되는데 규칙이 많아질수록 packet이 전달될 때마다 순차적으로 검사하게 되므로 latency와 CPU 사용량이 증가하게 됩니다. (이것이 곧 성능 저하 및 관리 복잡도 상승...!) 이를 해결하기 위해 등장한 Cilium을 통해 iptables없이 kurnel 레벨에서 직접 트래픽을 처리하는 .. 2025. 7. 19.
Terraform으로 AWS RDS MySQL 8.0에 감사 로그(Audit Log) 설정하기 Audit log 파라미터 설정 시 발생하는 오류기본적으로 terraform으로 AWS RDS의 MySQL을 구성했다면, 아래와 같이 감시 로그(audit_log)를 설정합니다.# 감사 로그 이벤트 설정parameter { name = "server_audit_events" value = "CONNECT,QUERY"}# 감사 로그 제외 사용자(rdsadmin)parameter { name = "server_audit_excl_users" value = "rdsadmin"}... 그러나 위와 같은 파라미터 설정은 MySQL 8.0에서는 적용되지 않아, 아래와 같은 에러가 발생합니다.Error: Error modifying DB Parameter Group: InvalidParame.. 2025. 5. 4.
Amazon VPC Lattice로 EKS 외부 연결 구성하기 들어가며 최근 AWS에서 출시한 Amazon VPC Lattice는 서비스 간 통신을 네트워크 레벨이 아닌 애플리케이션 레벨에서 제어할 수 있는 완전관리형 서비스입니다. 기존의 복잡한 피어링, 프록시 설정, 보안 구성 없이도 VPC, 계정, 구성 환경(EKS, EC2, Lambda 등)의 제한 없이 통신 경로를 구성할 수 있다는 점에서 주목받고 있습니다. https://aws-ia.github.io/terraform-aws-eks-blueprints/patterns/network/client-server-communication/ Amazon VPC Lattice Client-server Communication - Amazon EKS Blueprints for TerraformAmazon VPC La.. 2025. 4. 25.
728x90