Container

hyeony·2025년 6월 4일
0

SDV

목록 보기
8/17
post-thumbnail

1. 컨테이너의 개념과 기초

가. 샌드박스(Sandbox)

① 개념

  • SW를 안전하게 실행하기 위한 통제된 환경
  • 테스트되지 않았거나 신뢰할 수 없는 PG이 호스트 OS나 머신에 피해를 주지 않도록 격리

② 특성

  • 격리된 실행 환경을 제공하며, 제한된 스토리지·메모리·스크래치 공간만 허용
  • 네트워크 접근, 호스트 시스템 탐색, 입력 장치 접근 등은 엄격히 제한

나. 컨테이너(Container)

① 개념

  • 샌드박스 형태의 프로세스로, 호스트 시스템 내 다른 프로세스와 격리되어 실행
  • 애플리케이션 실행에 필요한 코드, 라이브러리, 도구, 설정, 런타임 등을 하나로 패키징한 표준 소프트웨어 단위

② 특징

  • 환경에 상관없이 애플리케이션을 일관되게 실행 가능하게 함
  • 여러 컨테이너는 동일한 머신에서 실행되며, 호스트 커널을 공유하고 사용자 공간에서 격리되어 실행
  • 일반적으로 이미지 크기는 수십 MB 수준으로, 가상 머신보다 효율적

2. 컨테이너 vs 가상 머신

가. 작동 방식의 차이

① 컨테이너

  • OS를 가상화하며 애플리케이션 계층의 추상화에 가까움
  • 공유 커널 기반으로 가볍고 빠름

② 가상 머신(VM)

  • 물리적 하드웨어를 가상화
  • 각 VM은 OS, 바이너리, 라이브러리를 모두 포함하며 수십 GB 수준으로 무겁고 부팅도 느림

3. 컨테이너의 장점

가. 일반적인 장점

  • 이식성(Portability): 컨테이너 런타임만 있다면 어떤 시스템에서도 실행 가능
  • 격리성(Isolation): 각 컨테이너는 독립 실행 환경을 제공하여 충돌을 방지
  • 효율성(Efficiency): 가벼우며 호스트 커널을 공유해 오버헤드가 적음
  • 확장성(Scalability): 빠르게 실행/종료 가능하며, 수요에 따라 유동적으로 확장/축소할 수 있음

4. SDV에서의 컨테이너 활용

가. SDV에 적합한 이유

  • 모듈화(Modularity): 차량 내 각 소프트웨어(제어, 통신, 인포테인먼트 등)를 개별적으로 캡슐화하여 관리 가능

  • 일관성(Consistency): 개발-테스트-배포까지 일관된 환경을 제공하여 예측 가능한 동작 보장

  • 리소스 효율성(Resource Efficiency): 엣지 컴퓨팅, 임베디드 환경에 적합할 만큼 경량 구조

  • 확장성과 유연성(Scalability & Flexibility): 컨테이너는 동적으로 인스턴싱, 확장, 종료 가능하여 변화하는 차량 요구에 대응 가능

  • 보안성(Security): 각 컨테이너는 독립된 파일시스템, 네임스페이스를 가지며 공격 표면을 축소

  • 이식성(Portability): 다양한 차량 플랫폼에서도 동일하게 작동하여 운영·관리 단순화에 기여

5. 도커(Docker)와 쿠버네티스(Kubernetes)

가. Docker

① 개요

  • 컨테이너를 생성·배포·실행하는 플랫폼이자 도구
  • 애플리케이션과 모든 종속 요소를 컨테이너 이미지로 패키징

② 한계

  • 단일 노드에서는 뛰어나지만, 대규모 관리에는 한계 有

나. Kubernetes

① 개요

  • 컨테이너화된 앱의 배포, 스케일링, 관리를 자동화하는 오픈소스 오케스트레이션 플랫폼

② 역할 분담

  • Docker: 컨테이너를 생성 및 실행
  • Kubernetes: 여러 머신에 배포된 컨테이너 군을 관리

<참고 자료>
전재욱 교수님, SDV 이해하기(K-MOOC), 성균관대학교 반도체시스템공학과, '24.12.09.~'25.02.28.

profile
Chung-Ang Univ. EEE.

0개의 댓글