이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

클라우드/CRI-O

CRI-O 와 함께 사용되는 tool

이쿠우우 2021. 10. 5. 20:54
반응형

 

CRI-O 와 함께 사용되는 tool 

 

CRI-O의 경우는 오로지 container를 실행하는 역할을 담당하고 있음.

docker와 비교하자면 docker구조에 포함되어있는 containerd와 동일한 역할을 수행함.

즉 CRI-O는 container 실행만 담당하지 이외의 기능인 image build, cli, image registry 생성 등과 같은 부가적은 기능은 수행하지 못함.

kubernetes의 CRI로 연동되기 위해서는 충분한 조건을 가지고 있어서 

CRI-O만 설치하면 kubernetes는 문제없이 사용할 수 있음.

 

하지만 docker를 사용했을 때 처럼 image build 등과 같은 부가 기능을 사용하고 싶다면

이를 가능하게 하도록 CRI-O와 함께 사용할 수 있는 Tool로 Buildah, Podman, Skopeo이 존재함.

 

아래에서는 CRI-O와 함께 사용 가능한 Buildah, Podman, Skopeo 에 대해 알아봄.

 


 

Podman (포드맨)

docker cli와 비슷한 역할을 수행하는 tool로 

container생성, 유지 및 관리 도구임.

docker와는 다르게 각 container들을 fork/exec 방식으로 싱행해서 별도로 구동하기 때문에

daemon 형태로 실행되지 않는 daemon-less 형태로 실행되고 

root권한을 요구하지 않음.

또한 kubernetes 와의 높은 호환성을 자랑함.

containerd와 같이 실제 container를 생성하는건 runC를 통해서 진행함.

 

CentOS 8/Ubuntu 20.10 에서는 default로 제공되는 tool임.

(CentOS 7까지는 default로 제공되는 tool이 docker였는데 8부터 podman으로 대체됨.)

 

Podman 설치

CentOS 8/Ubuntu 20.10 에서는 default로 제공되는 tool이기 때문에

version만 상관 없다면 default제공되는 podman으로 이용이 가능.

하지만 특정 version을 받고 싶다면 version을 명시하고 yum 또는 apt로 설치함.

 

본 예제 환경은 CentOS7임으로  CentOS7을 환경으로 진행함.

CentOS7환경은 별도로 repo를 등록해줘야함. 

(상위 CRI-O 설치를 위해 등록했던 repo와 동일하긴 함)

 

[yum repo 등록]

curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo  https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo

 

[설치 가능 podman version확인]

yum list podman --showduplicates | sort -r

3.0.1-2.el7.3.1 version으로 설치 진행

 

[yum podman 설치]

yum install podman

 

[설치 확인]

podman version

 

Podman 명령어

podman 명령어는 docker cli 명령어와 매우 유사함으로 대략적인 것만 보여주고 넘어가겠음...

podman을 통해 container 생성, 시작, 중지, 삭제, exec 접속 등 기능을 사용할 수 있음.

 

[image pull ]

podman pull [image name]

 

[image list 조회]

podman images

 

[실행되고 있는 container 목록 확인]

podman ps

 

[container process 확인]

podman ps -a

[podman build]

podman build -t [생성할 image name] .

podman으로도도 build명령을 통해 DockerFile 빌드를 사용할 수 있음.

podman build를 사용하는 경우 내부적으로 Buildah를 이용하여 container image를 build함.

Buildah는 다음 목차에서 알아봄.

 

 


Buildah (빌다)

 

Buildah는 OCI 이미지를 생성하는 도구로

docker build를 대체하여 CRI-O 환경에서 container image를 build할 때 사용됨.

Dockerfiles를 활용한 build도 가능하고

또 다른 형식의 파일로도 컨테이너 build도 가능함.

Buildah로 build 된 image는 OCI를 준수하고 있기 때문에 podman또는 docker에서 사용 가능함.

 

Buildah 설치

[설치 가능 Buildah version확인]

yum list Buildah --showduplicates | sort -r

[yum Buildah 설치]

yum install buildah

 

[설치 확인]

 

Buildah 명령어

 

Buildah 명령어 또한 docker build 명령어와 거의 똑같음.

 

[build용 Dockerfile 생성]

FROM docker.io/ubuntu

ENTRYPOINT echo "Builah build test"

 

[container image build]

[build image확인]

생성한 buildahtest image를 확인할 수 있음.

[yum Buildah 설치]

yum install skopeo -y

 


Skopeo (스코피오)

Skopeo는 docker의 Docker Content Trust (DCT) 기능을 대체할 수 있음.

image registry에 대해서 다양한 작업을 진행 할 수 있음.

registry에 있는 image 검사, 인증 등을 진행함.

 

기존 docker에서 image를 docker registry에 push하기 위해서는 pull, tag, push등 좀 번거로운 과정을 거쳤다면

Skopeo는 간단하게 copy 명령으로 간단하게 push할 수 있음.

 

Skopeo는 OCI image를 저장할 수 있는 모든 image resistry에서

image를 검사할 수 있음. 

image를 한 위치에서 다른 위치로 복사 할 수도 있음.

 

Skopeo 설치

 

[yum repo 등록] : CentOS7 repo

sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo

 

[설치 가능 Skopeo version확인]

yum list skopeo --showduplicates | sort -r

[yum으로 skopeo설치]

yum install skopeo -y

 

[설치 확인]

skopeo -v 

 


 

 

 

참고

https://www.samsungsds.com/kr/insights/docker.html

https://waspro.tistory.com/679

 

podman

https://podman.io/

https://podman.io/getting-started/installation

https://www.lesstif.com/container/podman-98926748.html

https://6991httam.medium.com/podman%EC%9D%B4%EB%9E%80-feat-docker-419e04b14cd0

 

 

Buildah

https://buildah.io/

 

 

반응형

'클라우드 > CRI-O' 카테고리의 다른 글

CRI-O 설치  (0) 2021.10.05