메뉴 닫기

podman

“podman”


podman은 리눅스 시스템에서 컨테이너 및 이미지를 실행, 관리, 배포를 위한 daemon-less한 컨테이너 엔진이다.

 

[개  요]

✅ 종    류 : 개념정의

✅ 난이도 : ⭐

✅ 내용요약 : Podman 란

✅ 테스트환경 : 

✅ 관련직무 : 시스템&클라우드 엔지니어

1. Podman

Podman이란?

podman은 Pod Manager tool의 약자로 OCI 표준 container와 런타임을 개발, 관리, 실행할 수 있게 해주는 container engine입니다.

docker와 비교하면 가장 큰 차이는 3가지라고 볼 수 있습니다.

1️⃣ daemon-less

docker와 가장 큰 차이는 podman은 바로 데몬이 필요없다는 점(daemon-less)입니다.

docker는 Docker daemon을 구동하고 여기에서 모든 작업이 이루어지며 사용자는 docker client 명령어를 사용해서 도커 데몬을 제어했습니다.

이 방식은 효율적이지만 큰 문제가 있는데 docker daemon이 모든 컨테이너와 이미지를 관리하다 보니 도커 데몬이 죽거나 재시작하면 모든 컨테이너가 중지된다는 점입니다.

podman은 이런 문제를 해결하기 위해 데몬에서 관리하지 않고 podman이 각 컨테이너들을 fork/exec 방식으로 실행해서 별도로 구동하므로 별도의 데몬이 필요없고 이에 따라 컨테이너들을 훨씬 더 안정적으로 실행할 수 있습니다.

Daemon-less 구조는 시스템의 안정성 면에서 큰 이점을 제공합니다. 특히, 중요한 애플리케이션을 실행하는 환경에서는 단일 실패 지점(Single Point of Failure)을 최소화하는 것이 매우 중요합니다. Docker에서 데몬이 중단되면 전체 시스템이 중단될 수 있지만, Podman의 구조는 이러한 리스크를 줄이는 데 효과적입니다.

2️⃣ Kubernetes 지원

podman 은 대부분이 명령어가 docker와 호환되지만 docker가 제공하지 않는 기능도 제공합니다.

그 중에 하나는 kubernetes나 Openshift 같은 container platform 으로 쉽게 이관할 수 있도록 Kubernetes Yaml을 다음 명령어로 생성할 수 있습니다.
또 k8s에서 구동중인 pod을 디버깅하기 위한 다음 명령어도 제공합니다.

Kubernetes와의 자연스러운 연동은 컨테이너 오케스트레이션이 필수인 대규모 환경에서 매우 큰 장점입니다. Docker에서 Kubernetes로의 전환이 조금 번거로울 수 있지만, Podman은 이를 매끄럽게 해결해 주는 도구로 자리 잡고 있습니다. 이는 DevOps 환경에서 효율적인 워크플로우를 유지하는 데 크게 기여할 수 있습니다.

3️⃣ root 권한 불필요

docker는 docker daemon 에 모든 권한이 집중되다 보니 아무나 docker client로 docker daemon을 제어하지 못하도록 root 사용자만 docker client를 사용하도록 했습니다.

하지만 이 방식은 시스템 운영자가 컨테이너 운영자가 되어야 하므로 업무 분리가 제대로 안되게 만들며 과다한 root 권한이 필요하므로 오히려 보안에 더 취약합니다.

podman 은 fork/exec으로 개별컨테이너를 실행할 수 있으므로 1024 이하의 well known 포트를 사용하는등의 root 권한으로 실행해야 하는 작업이 아니라면 일반 사용자로 실행할 수 있으므로 담당자별 권한을 분리할 수 있으므로 시스템 운영자와 서비스/컨테이너 운영자로 전문화할 수 있으며 보안측면에서도 더 뛰어납니다.

Root 권한이 불필요하다는 점은 보안에 민감한 환경에서 매우 큰 이점입니다. 권한 분리가 명확해짐에 따라, 시스템 관리자와 애플리케이션 개발자 간의 충돌 가능성이 줄어들고, 보안 사고를 예방하는 데 더 큰 역할을 할 수 있습니다. 특히, 잘못된 root 권한 사용으로 발생할 수 있는 치명적인 보안 문제를 미연에 방지할 수 있다는 점에서 Podman은 더욱 안전한 선택이 될 수 있습니다.

결론적으로, Podman은 데몬리스 구조, Kubernetes와의 긴밀한 통합, 그리고 rootless 실행 환경이라는 세 가지 주요 장점 덕분에 현대 컨테이너 환경에서 매우 유용한 도구로 자리 잡고 있습니다. 특히 보안과 안정성을 중요시하는 엔터프라이즈 환경에서 Podman은 Docker의 대안으로서 강력한 경쟁력을 가지고 있습니다.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x