1.12.Expain virualization fundamentals(Server Virtualization, containers, and VRFs)
1.12.Expain virualization fundamentals(Server Virtualization, containers, and VRFs)
Server Virtualization = 서버가상화, 주로 하이퍼바이저를 사용하여 하나의 물리적 머신에서 가상 머신을 만드는 프로세스이다.
Container = 도커 위에 컨테이너 생성
VRF = Virtual Routing and Forwarding


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

이 방식은 효율적이지만 큰 문제가 있는데 docker daemon이 모든 컨테이너와 이미지를 관리하다 보니 도커 데몬이 죽거나 재시작하면 모든 컨테이너가 중지된다는 점입니다.
podman은 이런 문제를 해결하기 위해 데몬에서 관리하지 않고 podman이 각 컨테이너들을 fork/exec 방식으로 실행해서 별도로 구동하므로 별도의 데몬이 필요없고 이에 따라 컨테이너들을 훨씬 더 안정적으로 실행할 수 있습니다

root 권한 불필요
docker는 docker daemon 에 모든 권한이 집중되다 보니 아무나 docker client로 docker daemon 을 제어하지 못하도록 root 사용자만 docker client 를 사용하도록 했습니다.
하지만 이 방식은 시스템 운영자가 컨테이너 운영자가 되어야 하므로 업무 분리가 제대로 안 되게 만들어 과다한 root 권한이 필요하므로 오히려 보안에 더 취약합니다.
podman 은 fork/exec 으로 개별 컨테이너를 실행할 수 있으므로 1024이하의 well known 포트를 사용하는 등의 root 권한으로 실행해야 하는 작업이 아니라면 일반 사용자로 실행할 수 있으므로 담당자별 권한을 분리할 수 있으므로 시스템 운영자와 서비스/컨테이너 운영자로 전문화할 수 있으며 보안 측면에서도 더 뛰어납니다.
Kubernetes 지원
podman 은 대부분이 명령어가 docker 와 호환되지만 docker 가 제공하지 않는 기능도 제공합니다.
그 중에 하나는 Kubernetes 나 OpenShift 같은 container platform 으로 쉽게 이관할 수 있도록 Kubernetes Yaml 을 다음 명령어로 생성할 수 있습니다.