본문 바로가기

OS & network/linux

Oracle Linux을 위한 포드맨(Podman) #1

안녕하세요. 테크넷 마스터 김재벌 입니다.

 

최근에 제가 관심 있게 지켜보는 영역이 있는데, 클라우드....그 중에 컨테이너 ... 미래는 어떨지 생각해 봅니다.

 

도커가 예전만 못하고 최근에 orgarnization 기능 유료화에 팀 플랜 이슈로 인해 도커의 미래에 대한 불확실성이 더욱 더 커진 상태입니다.

 

논란이 되고, MetalLB 등이 이미지를 삭제 하고 이전하는 등 여러 행보가 심각하다 보니 , 다시 번복을 하기도 했죠.

(이게 뭔 짓인지...시장의 혼란과 신뢰를 망쳐 버린 졸속 정책이죠..;;)

 

https://www.docker.com/blog/no-longer-sunsetting-the-free-team-plan/

 

We're no longer sunsetting the Free Team plan | Docker

We're reversing course. After taking in feedback from the community, we’re no longer sunsetting the Free Team plan.

www.docker.com

 

암튼...그래서 도커를 대체할 여러 기술 들에 대해서 많은 기술이 언급되고 있죠.

 

몇년전 쯤 부터 언급되고 있는 OCI(Open COntainer Initiative)의 런타임 명세와 이미지 명세를 통해 CRI(Container Runtime Interface)가 등장하기도 했죠.

 

암튼 도커의 데몬 문제로 인해 서비스 실패 등 여러 이슈로 인해 RHEL 에서는 Docker 가 아닌 Podman 을 지원하기 시작했죠.

포드맨(Podman) 소개

Podman은 OCI(Open Container Initiative) 호환 컨테이너를 실행하고 관리하기 위한 경량 유틸리티를 제공합니다. 

따라서 Podman 배치는 Kubernetes, Docker용 Oracle Container Runtime 및 Oracle Cloud Native Environment용으로 

설계된 기존 컨테이너 이미지를 재사용할 수 있습니다.

Podman은 또한 Docker용 Oracle Container Runtime을 대체하기 위한 것이므로 명령줄 인터페이스(CLI)는 패키지가 podman-docker설치된 경우 동일한 방식으로 작동합니다.

Docker용 Oracle Container Runtime과 달리 Podman은 실행 데몬이 작동하지 않아도 됩니다. 
또한 UEK(Unbreakable Enterprise Kernel)에 대한 종속성이 없습니다. 

컨테이너는 RHCK(Red Hat Compatible Kernel) 또는 UEK 릴리스를 실행 중인 시스템 모두에서 실행됩니다.

또한 Podman을 사용하면 루트 권한 없이(rootless) 컨테이너를 시작하고 실행할 수 있습니다.

이 부분은 보안에도 큰 도움을 줍니다. 기존에는 관리자 권한으로 실행되기에 보안상 좋지 못했죠.

Docker용 Oracle Container Runtime과 마찬가지로 Podman은 Docker Hub 및 Oracle Container Registry와 통합되어 SaaS(Software-as-a-Service) 클라우드에서 애플리케이션을 공유합니다.

Docker 허브는 응용 프로그램을 Docker 이미지로 호스팅하고 Podman과 호환되는 컨테이너를 만들고 관리할 수 있는 서비스를 제공합니다. Docker 허브에 계정을 등록하면 Podman을 사용하여 개인용 이미지를 저장할 수 있습니다. Docker 허브에서 공개적으로 액세스할 수 있는 이미지에 액세스하기 위해 계정이 필요하지 않습니다. Docker Hub는 또한 신뢰할 수 있고 지원되는 것으로 인증된 엔터프라이즈급 애플리케이션을 호스팅합니다. 

Oracle Container Registry에는 라이센스가 부여된 상용 및 오픈 소스 Oracle 소프트웨어 제품에 대한 이미지가 포함되어 있고, 개발 및 테스트 목적으로도 사용할 수 있습니다. 


빌다(Buildah) 소개
Buildah는 OCI(Open Container Intiative) 호환 컨테이너 이미지를 생성하기 위한 유틸리티입니다. 

Buildah는 보다 일반적인 명령보다 광범위한 사용자 정의 옵션을 제공합니다

Buildah를 사용하여 컨테이너 이미지를 생성하는 경우 유틸리티가 작동하기 위해 실행 중인 데몬이 필요하지 않습니다. Buildah는 또한 기본적으로 빌드를 캐시하지 않습니다. 또한 이 유틸리티는 컨테이너 이미지를 컨테이너 레지스트리에 푸시할 수 있으므로 배포 스크립트 및 자동화된 빌드 파이프라인과 함께 사용하기에 적합합니다.

스코페오(Skopeo) 소개
Skopeo는 원격 컨테이너 레지스트리에서 컨테이너 이미지를 관리하기 위한 유틸리티입니다. 

이 유틸리티를 이용하면 다운로드할 필요 없이 컨테이너 이미지의 콘텐츠를 검사할 수 있습니다.

자체 컨테이너 레지스트리에서 컨테이너 이미지를 호스팅하는 경우 Skopeo를 사용하여 컨테이너 이미지를 한 위치에서 다른 위치로 원활하게 이동할 수 있습니다. 또한, Skopeo는 불필요한 컨테이너 이미지를 일괄 삭제하는 데 유용합니다.

당연하게 Oracle Linux 에서도  Podman 을 이용하여 컨테이너 서비스를 제공할 수 있습니다.

 

Podman(POD 관리자)은 컨테이너를 개발, 관리, 실행하기 위한 오픈소스 도구입니다.

Podman은 libpod 라이브러리를 사용하여 컨테이너 에코시스템 전체를 관리합니다. 

Podman은 데몬이 없는 포괄적인 아키텍처로 컨테이너를 더 안전하고 손쉽게 관리할 수 있게 해주며,

Buildah(빌다) 및 Skopeo(스코피오)와 같은 관련 툴과 기능을 통해 개발자는 컨테이너 환경을 사용자 정의 방식으로

요구 사항에 가장 적합하게 설정할 수 있습니다.