비슷한 개념일지? 모르겠지만, 과거부터 한창 보안을 이야기할 때 zero trust라는 개념이 등장했다.네트워크 안/밖을 구분하지 않고 모든 요청에 대해서 새롭게 인증을 하고, end to end 암호화를 하는것이 주요 골자이다.이번에는 cilium을 통해서 end to end 암호화 wireguard와 cilium에서 하고 있는 tetragon에 대해서 알아보려고 한다.Cilium WireGuard기본적으로 k8s pod끼리는 평문 통신을 하게 되고, 패킷 스니핑을 하게 되면 패킷 내용을 알 수 있는 위험이 있다. - 하지만 이런 경우가 발생한다면, 이미 내부 시스템은 모두 침해가 된 상태이기 때문에 - end to end 암호화를 하더라도 다른 방법으로 데이터를 탈취할 가능성이 아주아주 많을것 같다...
전체 글
이제 마지막 스터디 주차이다. 마지막 주차는 어렵기도 어렵고, 적용도 힘든.. Security 보안과 관련된 사항이다.실습 환경 구성이번 주차는 vagrant로 구성을 한다. 이전 주차와 크게 다르지 않게 마스터 노드 1대, 워커 노드 2개로 구성한다.metric server, prometheus, grafana, cilium 1.18을 배포해서 사용한다.curl -O https://raw.githubusercontent.com/gasida/vagrant-lab/refs/heads/main/cilium-study/8w/Vagrantfilevagrant upcilium은 아래와 같이 설치된다. kube proxy 대체하고, cluster ipam을 사용한다. 그리고 native routing을 사용한다.s..
최근 회사에서 kube-apiserver oom으로 장애가 발생한적이 몇번 있었다. 한번이 아니고..그래서 kube-apiserver에 대한 로직과 oom를 조치하기 위한 방법을 몇가지 소개하려고 한다.kubernetes 동작 방법먼저 다들 아는것처럼 kubernetes은 크게 5가지로 요소로 구분을 한다. - kube-apiserver, etcd, controller manager, scheduler 그리고 kubelet이중에서 kubelet을 제외하고는 보통 control plane 노드에 떠서 동작을 한다.그리고 위 그림에 있는것처럼 controller manager, schedeler, kubelet은 저장소인 etcd와 직접 통신하지 않고모든 통신은 kube-apiserver를 통해서 진행이 된..
이제 7주차이다. 이번 주차의 내용은 성능 퍼포먼스이다!!! 딱 맞는 주제이다.최근 회사에서 클러스터 Control plane 노드가 다운되는 일이 빈번하게 발생하고 있다..현상은 kube-apiserver에 요청이 많아서 발생하고 있는데, 어떻게 하면 요청을 효과적으로 처리할 수 있을지?클러스터 규모를 어떻게 산정해야 할지 고민이 많았는데 이번 주차 내용이랑 딱 맞는 내용이다.실습 환경 구성(not cilium)이번 주차에서도 kind를 이용해서 실습 환경을 구성한다.그리고 성능 측정이 주 내용이기 때문에 control plane 노드 1대로 구성한다. k8s 버전은 1.33을 사용한다. 1.33 버전에서 lIst를 처리하는 방식이 개선되어 많은 성능 개선이 되었다고 한다.1.33 이전에는 기존에는 e..
cilium에서는 envoy를 이용해서 L7 제어를 할 수 있다.service mesh에서 path, method, header 등으로 backend를 제어하는것도 모두 cilium-envoy에서 필터링하는것이며cilium-envoy는 이름에서 알 수 있듯이 envoy를 cilium에서 사용할 수 있도록 매핑한것이며 보통 L7 제어를 한다. - L7 제어를 하면 hubble에서도 path 등의 정보를 볼 수 있다.Cilium L7 Aware Traffic Managementenvoy 기반으로 L7 트래픽 제어를 하는것이다. CiliumEnvoyConfig, CiliumClusterwideEnvoyConfig를 사용한다.그리고 istio와 동일하게 envoy config를 사용하는것은 매우매우 어렵고 복잡..