# cilium

18개의 포스트
post-thumbnail

cilium 소개 (for k8s)

cilium 개념파악을 위해 공식문서 읽어보기

2022년 12월 26일
·
0개의 댓글
·

kubernetes 설치(on ubuntu)

ubuntu 20.4 위에 kubernetes 설치, 클러스터 생성, 네트워크플러그인 설치(cilium), 컨테이너 배포

2022년 12월 21일
·
0개의 댓글
·

[K8S/Cilium] eBPF 기반 서비스 메쉬 분석 (Per-Node Proxy)

Cilium 이 최근 공개한 eBPF 기반의 서비스 메쉬에서 중요하게 언급하고 있는 것 중에 하나는 Pod 마다 사이드카 형태로 프록시를 추가하지 말고 노드별로 하나씩만 설치해서 사용하자는 것이다. 이는 특히 대규모의 클러스터에서 많은 사이드카 프록시로 인해 발생하는

2022년 1월 25일
·
0개의 댓글
·

[K8S] Cilium NetworkPolicy 문제 분석

오늘은 최근 회사에서 GitOps 를 적용하기 위해 ArgoCD 를 설치하던 중 발생했던 네트워크 정책(NetworkPolicy) 관련된 문제에 대해 살펴보고자 한다.Helm 을 이용하여 ArgoCD 를 설치하였는데 아래와 같이 두 개의 Pod 만 동작하지 않는 문제가

2022년 1월 6일
·
0개의 댓글
·

[K8S] Cilium RPFilter 문제 분석

리눅스는 패킷의 출발지 주소를 마음대로 조작해서 공격하는 IP 스푸핑 공격을 막기위해 RPFilter (Reverse Path Filter) 라는 기능을 제공한다. 이 기능은 간단히 소개하면 특정 네트워크 장치로 들어온 패킷이 동일한 네트워크 장치로 나갈 수 있는지를

2021년 12월 10일
·
0개의 댓글
·

[K8S] Cilium CGroupV2/PrivateNS 문제 분석

최근 공개된 우분투 21.10 은 컨테이너와 관련된 상당히 큰 부분이 변경되었다. 마침내 CGroupV2 가 적용되었고, 도커도 업그레이드되면서 CGroup 네임스페이스의 기본값이 Private 으로 설정되었다. 오늘은 이로 인해 발생한 문제에 대해 자세히 살펴보도록

2021년 11월 30일
·
0개의 댓글
·

[K8S] NAT 루프백 문제 분석 (LRP)

오늘은 지난 글에서 소개했던 NAT 루프백 문제에 대해 다시 소개하고자 한다. 이유는 몇 개 국가의 IDC 혹은 클라우드에서 NAT 루프백 문제를 해결하기 위해 라우터에 필요한 설정을 추가했음에도 불구하고 원인을 정확히 알 수 없는 이유로 동작하지 않는 문제가 발생해서

2021년 11월 10일
·
0개의 댓글
·
post-thumbnail

[K8S] Cilium Socket-based LoadBalancing 에 의한 Istio Envoy 우회 문제 분석

오늘은 Cilium 에서 소켓 기반 로드밸런싱을 이용할 때 발생하는 EnvoyProxy 사이드카 우회 문제에 대해 살펴보고자 한다. 이는 현재 모든 서비스 메쉬(Istio, Linkerd, ...)에서 서비스 IP 기반으로 동작하는 모든 필터를 우회하는 심각한 문제를

2021년 8월 25일
·
3개의 댓글
·

[K8S] VXLAN 사용 불가 문제 분석

우리 회사에서는 주로 의료데이터를 다루다보니 개인정보보호법에 의해 서비스를 운영하는 국가 외부로 데이터가 유출되면 안 된다. 그래서 한국이나 미국 같이 AWS 나 GCP 리전이 있는 국가들은 해당 서비스를 이용하여 운영할 수 있지만, 해당 국가에 리전이 없는 경우에는

2021년 8월 11일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] Socket-Based LoadBalancing 기법

Cilium 에서 ClusterIP 서비스로 통신할때 로드밸런싱이 이루어지는 과정은 아래 그림과 같다. 왼쪽 그림은 네트워크 기반 로드밸런싱 방식이고, 오른쪽 그림은 소켓 기반 로드밸런싱 방식이다. 간단한 설명을 위해 백엔드가 같은 노드에 있는 경우만 살펴보자.cili

2021년 7월 2일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] IPVLAN 기반 Cilium 의 NodePort 버그 분석

Cilium 에서 제공하는 IPVLAN 기반의 Routing Datapath 기법을 사용하던 중 NodePort 관련 버그를 발견하였다. (NodePort 는 모든 노드의 지정된 포트로 접속하면 백엔드(선택된 Pod)로 연결해주는 서비스이다.) IPVLAN 을 사용하는

2021년 6월 30일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] 라우팅 기법 성능 평가

쿠버네티스의 CNI 에서 성능에 가장 큰 영향을 미치는 것은 다음 두 가지이다.eBPF vs IPTables (IPVS)Direct Routing vs TunnelingCilium 과 가장 대표적인 CNI 인 Calico 를 이용하여 어느 정도의 성능 차이가 나는지 살

2021년 6월 12일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] bpf_redirect_peer()/bpf_redirect_neigh()

Cilium 에서 VETH 를 기반으로 Pod-To-Pod 통신이 이루어지는 과정은 아래 그림의 왼쪽과 같다.Pod1 의 eth0 으로 패킷을 전달하면 veth1 을 통해 호스트 네트워크 스택으로 패킷이 전달된다.여기에서 목적지 주소를 이용하여 몇 단계의 처리를 거친

2021년 6월 3일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] DSR (Direct Server Return)

Cilium 에서는 외부에서 쿠버네티스 서비스에 접근할 때 사용되는 NodePort, LoadBalancer 등의 성능을 개선할 수 있는 DSR(Direct Server Return) 기능을 제공한다.cilium.dsr위 그림처럼 DSR 의 목적은 Pod(nginx)의

2021년 5월 12일
·
2개의 댓글
·
post-thumbnail

[K8S/Cilium] NodePort 서비스

외부에서 쿠버네티스 서비스에 접근하는 대표적인 방법 중의 하나는 NodePort 서비스를 이용하는 것이다. NodePort 서비스를 생성하면 30000~32767 사이의 임의의 값이 포트 번호로 할당되고, 선택된 Pod 이 어디에있든 상관없이 모든 노드에서 해당 포트

2021년 5월 12일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] ClusterIP 서비스

일반적으로 쿠버네티스 환경에서는 서비스(Service)를 통해 Pod 과 통신한다. 이는 특정 Pod 에 직접 접속하는 것보다 서비스의 셀렉터를 통해 선택된 여러 Pod 들 중 하나와 통신하는 것이 로드밸런싱이나 고가용성을 보장하는데 더 유리하기 때문이다. 쿠버네티스에

2021년 5월 12일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] IPVLAN 기반 Routing Datapath 기법

Cilium 은 IPVLAN 에 기반한 Routing Datapath 기법을 제공하고 있다. IPVLAN 은 VXLAN 과 마찬가지로 리눅스 커널이 제공하는 기능이므로 IPVLAN 에 대한 자세한 설명은 생략하고, Cilium 의 동작 과정을 설명하면서 필요한 부분에

2021년 5월 12일
·
0개의 댓글
·
post-thumbnail

[K8S/Cilium] VXLAN 기반 Tunneling Datapath 기법

Cilium 은 VXLAN 에 기반한 Tunneling Datapath 기법을 제공하고 있다. VXLAN 은 리눅스 커널이 제공하는 기능이므로 VXLAN 에 대한 자세한 설명은 생략하고, Cilium 의 동작 과정을 설명하면서 필요한 부분에 대해서만 간단히 부연설명하겠

2021년 5월 12일
·
0개의 댓글
·