Docker Image는 Layer, Metadata로 구성됩니다.Layer에는 Docker layer와 Container layer로 또 한번 나눠집니다.위 layer는 읽기/쓰기 속성을 가질 수 있는데, Docker layer의 경우 Read only만 가능합니다.

컨테이너는 "격리된 프로세스"라고 할 수 있습니다."격리"의 대상은 프로세스, 파일 시스템에 해당하는 커널단을 격리하는 방법과, CPU/Memory와 같은 하드웨어 리소스를 격리하는 방법이 존재합니다.이때, 커널 Namespace는 프로세스의 격리(https:
네트워크 네임스페이스는 리눅스 커널의 핵심적인 기능 중 하나로, 네트워크 리소스를 격리하는 기술입니다.해당 개념은 Docker와 같은 가상 컨테이너 기술에서 매우 중요한 역할을 합니다.네트워크 인터페이스는 한쌍의 네트워크 장비 혹은 프로토콜이 연결되도록 하는 지점을 의

Flannel CNI는 Kubernetes 클러스터에서 Pod 간의 네트워크 통신을 가능하게 해주는 Container Network Interface(CNI) 플러그인 중 하나입니다. 간단히 말해, Kubernetes의 네트워크 계층을 구성해주는 도구입니다.K8s 내부

Pod에는 하나의 Container를 사용하는 것이 권장이지만, 때에 따라 여러 Container를 혼재하여 사용하는 것도 가능하며, Container는 리눅스의 여러 격리 기술로 발전해왔습니다.이때, 하나의 Pod내의 Container끼리도 리소스들이 격리되는 것이

Calico Calico는 CNI 중 하나로, BGP 프로토콜을 사용하는 Non-overlay Network입니다. 이전에 알아봤던, Flannel이 Tunneling(vxlan, ip-in-ip)를 통한 Overlay Network인 점과는 다른 점이라고 할 수 있습

Calico CNI는 Kubernetes에서 네트워크 통신 시, 4가지 통신 제어 모드를 제공합니다.각각 IPIP, Direct, VXLAN, Pod Packet 암호화이며, Default로 IPIP 모드로 설정됩니다.IPIP 모드는 Azure에선 작동하지 않기에(ht

Service Pod 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 기법입니다. Service를 활용하면, Pod에게 고유한 IP 주소, Pod 집합에 대한 단일 DNS 부여가 가능하며, 이들을 로드밸런싱을 통해서 부하분산이 가능하도록 합니다. S

CoreDNS CoreDNS는 K8s 클러스터에서 DNS 역할을 수행할 수 있는 DNS 서버입니다. Pod, Service의 도메인을 관리하고, 외부 도메인에 대한 서버 연결이 필요한 경우 통로로 사용됩니다. Deployment로 관리, Service 타입 중 Clu

MetalLB는 Cloud가 아닌 환경에서 Loadbalancer를 사용할 수 있는 솔루션입니다.L2 및 BGP 모드를 지원하고 있으며, 무료로 사용 가능합니다.이유는 Service의 Loadbalancer 타입에 있습니다.해당 타입을 사용하기 위해서는 반드시 CSP의
Ingress는 외부(인터넷)에서 K8s 클러스터 안의 서비스로 들어오는 HTTP/HTTPS 요청을 관리하는 입구(https://kubernetes.io/ko/docs/concepts/services-networking/ingress/- 파드를 도메인을 통해

ingress 규칙에 따라 Ingress controller pod가 요청을 패킷으로 전달합니다.이때, 주소 변환(NAT) 작업이 빈번하게 발생되는 것은 필연적이라고 할 수 있습니다.아래 다이어그램에서의 빨간 박스 지점이 NAT가 발생하는 지점으로 간단한 구조임에도 두

Ingress https

Cilium Cilium CNI는 eBPF 프로그래밍 기술을 활용한 고성능 네트워크 솔루션입니다. eBPF는 Linux OS의 커널단과 같이 권한이 존재하는 Context에서 샌드박스 프로그램을 실행할 수 있는 기술입니다. iptables vs eBPF iptable

아래는 Cilium의 네트워크 토폴로지입니다.살펴보시면 아시겠지만, 일반적인 L2, L3 네트워크 토폴로지와는 다르게, 연결이 끊어져있어 명확한 라우팅 경로를 파악하기 어렵습니다.각 NIC를 연결하는 브릿지 장비나, 일반적인 전달/라우팅 규칙이 없기에, tcpdump를