메뉴 닫기

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의 대안으로서 강력한 경쟁력을 가지고 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다