Cloud

오픈스택과 컨테이너 II

naleejang 2020. 11. 9. 11:32

지난 포스팅에서는 오픈스택이 무엇인지, 레드햇 오픈스택의 배포 방식은 무엇인지를 알아보았다면, 이번 포스팅에서는 레드햇 오픈스택의 배포 프로세스와 최근 오픈스택이 컨테이너화 되기 시작한 버전을 중심으로 어떻게 기술이 변화되었는지 알아보도록 하겠습니다.

 

레드햇 오픈스택의 배포 프로세스

오픈스택이 컨테이너화 되면서 오픈스택 13에서는 오픈스택을 설치하기 위해서, registry.access.- redhat.com에서 해당 버전에 대한 오버클라우드용 컨테이너 이미지를 다운로드 받아 언더클라우드 노드에 구성된 컨테이너 레지스트리에 추가를 합니다. 그리고, 언더클라우드 노드의 컨테이너 이미지를 이용하여 오버클라우드에 오픈스택 서비스를 설치합니다.

반면에 오픈스택 16에서는 언더클라우드 설치 중 registry.access.io에서 컨테이너 이미지를  다운로드 받아 컨테이너 레지스트리에 다운로드 받은 컨테이너 이미지를 업로드합니다. 그리고, 언더클라우드에 필요한 오픈스택 서비스를 설치합니다. 언더클라우드 설치가 끝나면 오버 클라우드를 설치하는데 이때도 registry.redhat.io에서 오버클라우드용 컨테이너 이미지를 언더클라우드에 다운로드 받아 언더클라우드의 컨테이너 레지스트리에 업로드합니다. 그리고, 해당 컨테이너 이미지를 이용하여 오버클라우드 오픈스택 서비스를 설치합니다.

오픈스택은 오버클라우드 배포시 총 5단계를 거쳐 배포가 됩니다. 1단계에서는 공통 서비스에 해당하는 컨테이너 이미지를 다운로드 받고, 해당 서비스들을 설치합니다. 2단계에서는 오픈스택 서비스 로그를 남기기 위한 작업을 주로 합니다. 3단계에서는 오픈스택 서비스에 해당하는 데이터베이스와 테이블을 생성하고, 서비스와 동기화시키는 작업들을 합니다. 4단계에서는 오픈스택 서비스의 환경설정을 진행합니다. 그리고, 마지막 5단계에서는 스토리지와 관련된 작업들을 진행합니다.   

이때, 컨테이너를 실행하기 위해 Paunch가 사용됩니다. Paunch는 yaml 기반의 구성 데이터를 사용하여 컨테이너를 시작하고 관리하는 유틸리티로, 사전에 컨테이너에 필요한 네트워크, 매핑 될 스토리지 및 로깅 정보들을 yaml에 정의하고, 해당 yaml 파일을 이용하여 컨테이너를 실행합니다. 

버전별 오픈스택 컨테이너 기술 변화

이번에는 버전별로 오픈스택에 사용된 컨테이너 기술이 어떻게 변화를 하고 있는지 알아보겠습니다. 오픈스택 13 버전과 14 버전은 RHEL 7에 설치가 되며, 기본 컨테이너는 Docker입니다. 오픈스택 15 버전부터는 RHEL 8에 설치가 되면 기본 컨테이는 Podman이 됩니다.

오픈스택 13 버전 같은 경우에는 언더클라우드의 오픈스택 서비스가 아직 컨테이너화 되지 않았으며, 14 버전부터는 언더클라우드와 오버클라우드의 오픈스택 서비스가 모두 컨테이너화되었습니다. 

13 버전에서는 registry.access.redhat.com에서 컨테이너 이미지를 다운로드 받아왔습니다. 그래서, 별도의 인증과정 없이 컨테이너 이미지를 다운로드 받을 수 있었지만, 14 버전부터는 registry.redhat.io에서 컨테이너 이미지를 다운 받도록 변경이 되었습니다. 레지스트리 경로가 변경되면서 해당 레지스트리에 인증을 하지 않으면 컨테이너 이미지를 다운로드 받을 수 없게 되었습니다. registry.redhat.io에서 컨테이너 이미지를 다운받기 위해서는 반드시 access.redhat.com에 서브스크립 션이 있어야 하며, 레지스트리 인증용 계정을 별도로 생성해야 합니다.

 

이번 포스팅에서는 레드햇 오픈스택의 배포 프로세스와 버전별 오픈스택 컨테이너 기술 변화에 대해 알아보았습니다. 다음 포스팅에서는 Long Support가 되는 RHOSP13 버전과 RHOSP16 버전의 시스템 아키텍처를 살펴보고, 컨테이너화 된 오픈스택을 운영하기 위해 알아야 하는 것들을 살펴보도록 하겠습니다.