분류 전체보기(52)
-
Docker Compose
Docker Compose 는 여러 컨테이너로 구성된 애플리케이션을 손쉽게 정의하고 실행할 수 있도록 도와주는 도구이다. 단일 명령어로 여러 컨테이너를 시작 ,중지, 관리할 수 있어 개발 및 운영 환경에서 매우 유용한 도구이다. Docker Compose?멀티 컨테이너 관리 도구 : 하나의 애플리케이션이 여러 개의 컨테이너(ex: Web Server, Database, Cache Sever 등)로 구성될 떄 이들을 한 번에 정의하고 실행할 수 있도록 한다.개발 및 테스트 환경: 복잡한 환경을 빠르게 구성하고 쉽게 재현할 수 있어 로컬 개발 환경이나 CI CD 파이프라인에 자주 사용된다.YAML 기반 설정: 애플리케이션 구성 요소(컨테이너)를 YAML 파일에 정의하여 각 서비스의 이미지, Port, Vol..
2025.03.25 -
Docker Architecture
Docker의 격리가 완전한가?Docker Container는 강력한 격리를 제공하지만 VM 만큼 완벽한 가상화 격리는 아니다. 1. 커널 공유Cotainer은 Host Kernel을 공유하기 때문에 Kernel 을 취약점을 통해 Container Escape 이 발생할 가능성이 있다.해결방안: gVisor, Kata Containers 같은 가상화 기반의 샌드박스 컨테이너 사용2. Default 설정이 완전한 격리를 제공하지 않는다.기본적으로 Docker는 User Namespace가 활성화되지 않았다. (컨테이너 내 사용자/그룹 ID를 격리하여 Host 와 다른 권한 수준을 가지도록하는 격리 방법)그래서 컨테이너 내부의 root 사용자는 Host 에서 root 로 동작할 수도 있다.해결방안: --us..
2025.03.19 -
컨테이너 가상화
위와 같은 특성들로VM은 격리성과 보안이 중요한 환경에 적합하고컨테이너는 빠른 배포, 높은 확장성, 리소스 효율성이 중요한 환경에서 유리하다 컨테이너 가상화에 필요한 대표적인 리눅스 기반 기술 두 가지- 네임스페이스(Namespaces)- cgroups(Control Groups) 1. 네임스페이스 (Namespaces)컨테이너를 서로 독립된 환경에서 실행할 수 있도록 리눅스 커널에서 제공하는 격리 기술이다.리눅스에서 실행되는 모든 프로세스는 기본적으로 커널의 자원(파일 시스템, 프로세스 ID, 네트워크 등)을 공유하지만 Namespaces를 사용하면 특정 리소스를 다른 프로세스와 격리할 수 있다.Namespaces 사용 예시1) PID Namespace 를 사용한 프로세스 격리unshare --pid ..
2025.03.18 -
+ VM (OVS, Overlay Network, Tunneling)
OpenVswitch 는 VM 간에 Overlay Network 를 구성할 수 있는 스위치지만 GRE(Generic Routing Encapsulation) VXLAN 등의 터널링 프로토콜을 사용한다.이때 OVS 는 터널링 프토코콜에 포함된 건가?아니다OVS 자체는 가상의 스위치로 L2 Network 기능을 제공한다.하지만 Overlay Network 를 구성하려면 GRE, VXLAN 등의 터널링을 활용해야한다. 근데 이미 Linux Bridge 도 L2 스위칭을 제공하는 데 OVS 를 사용하는 이유가 무엇일까?1. Advanced Networking FeaturesLinux Birdge는 터널링을 기본 지원하지 않음 등등 OVS는 단순히 L2 스위칭뿐만 아니라 SDN(software defined ne..
2025.03.05 -
Xen vs KVM
https://idery-123.tistory.com/70 KVM (Kernel Based Virtual Machine )1. KVMKVM은 리눅스 커널을 하이퍼바이저로 변환하여 VM 을 실행시키는 기술이다. CPU 하드웨어 가상화 기능을 활용하여 Full Virtualization 을 구현한다.KVM 은 Guest OS 를 실행할 때 물리적인 CPU 명령을idery-123.tistory.com앞서 KVM 과 Xen 에 대해서 살펴보았다. 그러면 두 Hypervisor 의 차이점은 무엇일까? KVM 과 Xen 의 차이점은 무엇일까?두 Hypervisor의 가장 큰 차이점은 "Hypervisor의 구조와 I/O 관리 방식" 이다.Xen은 Dom0 (Control Domain)을 사용하고KVM 은 libvi..
2025.03.02 -
Paravirtualization vs Full Virtualization
Paravirtualization vs Full VirtualizationParavirtualizationParavirtualization 에서 Guest OS 는 Hypervisor와 직접 통신을 할 수 있도록 설정된다. 이때 Hypervisor을 거쳐서 Hypercall을 사용해 Host OS 와 직접 접속한다.기본적으로 OS 는 하드웨어에서 직접 실행되도록 설계되어 있다. 하지만 VM 환경에서는 하드웨어에서 OS 가 직접 실행될 수가 없고 Hypervisor 를 거쳐야 한다.예를 들어서 OS 가 CPU 를 제어하는 명령어를 실행하면 Hypervisor 없이 실행할 경우 - > 진짜 CPU 가 이 명령을 실행해서 (물리적인 CPU 를 조작하게 된다)하지만 이처럼 Guest OS 가 CPU 명령어를 실..
2025.03.01