개요

OpenStack 프로젝트는 클라우드 환경에대한 모든 타입을 지원하는 오픈소스 클라우드 컴퓨팅 플랫폼입니다. 이 프로젝트는 간단한 구현, 대규모 확장, 다양한 기능에대해 목표로 움직입니다. 전 세계 클라우드 전문가들이 프로젝트에 기여합니다.

OpenStack은 서로 보완하는 다양한 서비스를 통하여 Infrastructure-as-a-Service (IaaS) 솔루션을 제공합니다. Application Programming Interface (API) 를 이용하여 각 서비스 통합을 쉽게 구성합니다.

이 가이드는 충분한 리눅스 경험이 있는 OpenStack의 새로운 사용자를 위하여 적합한 기능적인 아키텍처 예제를 사용하여 주요 OpenStack 서비스의 단계별로 배포하는 것을 다룹니다. 이 가이드는 production 시스템 설치에 사용하는 것이 아니며, OpenStack에 대하여 배우기위한 목적으로 최소한의 poc를 작성하기 위한 것입니다.

OpenStack 서비스의 기본 설치, 구성, 운용, 문제 해결에 익숙해진 후 Production에서 사용할 아키텍처를 사용하여 배포할 수 있는 다음 단계를 고려해야합니다:

  • 성능과 중복 요구사항을 충족하도록 필요한 코어와 부가 서비스를 결정하고 구현합니다.

  • 방화벽, 암호화, 서비스 정책 등의 방법을 사용하여 보안을 강화시킵니다.

  • 자동 배포와 Production 환경 관리를 위해 Ansible, Chef, Puppet, Salt와 같은 배포 툴을 사용합니다.

예제 구성도

예제 아키텍처에서는 기본 virtual machine 또는 인스턴스를 작동할 수 있는 최소 두 노드 (호스트)가 필요합니다. 추가로 블록 스토리지와 오브젝트 스토리지를 구성하기 위해선 추가 노드가 필요합니다.

중요

이 가이드에서 사용된 아키텍처 예제는 최소의 설정이므로 production 시스템 설치용으로 사용하지 않습니다. OpenStack에 대하여 배우기위한 목적으로 최소한의 poc를 제공하도록 설계되었습니다. 특정 사용 케이스를 위한 아키텍처를 만드는 방법이나 필요한 아키텍처를 결정하는 방법에 대한 정보는 아키텍처 설계 가이드 <https://docs.openstack.org/arch-design/> _를 참조하십시오.

다음과 같이 예제 아키텍처는 최소한의 Production 아키텍처와는 다릅니다:

  • 네트워킹 에이전트는 최소 하나 이상의 네트워크 노드가 아닌 컨트롤러 노드 상에 상주합니다.

  • 셀프 서비스 네트워크에 대한 오버레이 (터널) 트래픽은 전용 네트워크의 대신 관리 네트워크를 이용하여 통신합니다.

Pike에서 Production 아키텍처에 대한 자세한 정보는 Architecture Design Guide, OpenStack Networking Guide for Pike, 그리고 OpenStack Administrator Guides for Pike 를 살펴봅니다.

Queens에서 Production 아키텍처에 대한 자세한 정보는 Architecture Design Guide, OpenStack Networking Guide for Queens, 그리고 OpenStack Administrator Guides for Queens 를 살펴봅니다.

For more information on production architectures for Rocky, see the Architecture Design Guide, OpenStack Networking Guide for Rocky, and OpenStack Administrator Guides for Rocky.

Hardware requirements

하드웨어 요구사항

Controller

The controller node runs the Identity service, Image service, Placement service, management portions of Compute, management portion of Networking, various Networking agents, and the Dashboard. It also includes supporting services such as an SQL database, message queue, and NTP.

추가적으로 컨트롤러 노드에 블록 스토리지, 오브젝트 스토리지, Orchestration, Telemetry 서비스를 실행할 수 있습니다.

컨트롤러 노드는 최소한 두 개의 네트워크 인터페이스가 필요합니다.

Compute

Compute 노드는 인스턴스를 동작시키는 Compute 부분에 해당하는 hypervisor 를 실행합니다. 기본으로 Compute는 KVM 하이퍼바이저를 사용합니다. 또한 Compute 노드는 인스턴스를 가상 네트워크에 연결하는 네트워킹 서비스 에이전트를 실행하며 security groups 그룹을 통하여 인스턴스에 방화벽 서비스를 제공합니다.

하나 이상의 compute 노드를 배포할 수 있습니다. 각 노드는 최소 하나 이상의 네트웍 인터페이스를 필요로 합니다.

블록 스토리지

선택적인 Block Storage 노드는 인스턴스들을 위한 Block Storage 및 공유 파일 시스템 서비스 구성의 디스크를 가집니다.

간략화하여 compute 노드와 해당 노드 사이에서의 서비스 트래픽은 관리 네트워크를 사용합니다. Production 환경에서는 별도의 스토리지 네트워크를 구현하여 성능과 보안을 향상해야 합니다.

하나 이상의 Block Storage 노드를 배포할 수 있습니다. 각 노드는 최소 하나 이상의 네트워크 인터페이스를 가져야 합니다.

오브젝트 스토리지

선택적인 오브젝트 스토리지 노드는 오브젝트 스토리지 서비스가 계정, 컨테이너, 오브젝트를 저장하기 위해 사용하는 디스크를 포함합니다.

간략화하여 compute 노드와 해당 노드 사이에서의 서비스 트래픽은 관리 네트워크를 사용합니다. Production 환경에서는 별도의 스토리지 네트워크를 구현하여 성능과 보안을 향상해야 합니다.

해당 서비스는 두 개의 노드를 필요로 합니다. 각 노드는 최소 하나의 네트워크 인터페이스를 필요로 합니다. 두 개보다 많은 오브젝트 스토리지 노드를 배포할 수 있습니다.

네트워킹

다음 가상 네트워킹 옵션 중 하나를 선택합니다.

네트워킹 옵션 1: 프로바이더 네트워크

프로바이더 네트워크 옵션은 핵심 layer-2 (브릿징/스위칭) 서비스 및 네트워크에 대한 VLAN 세그멘테이션을 가능한 단순한 방식으로 하여 OpenStack 네트워킹 서비스를 배포합니다. 근본적으로는, 가상 네트워크를 물리 네트워크에 연결하며 layer-3 (라우팅) 서비스를 위한 물리 네트워크 인프라에 의존합니다. 부가적으로, DHCP 서비스는 IP 주소 정보를 인스턴스에 제공합니다.

OpenStack 사용자는 인프라와 정확히 매칭하는 가상 네트워크를 생성하기 위해 기반에 놓여 있는 네트워크 인프라에 관한 자세한 정보를 필요로 합니다.

경고

해당 옵션은 셀프 서비스 (사설) 네트워크, layer-3 (라우팅) 서비스, LBaaS, FWaaS 와 같은 고급 서비스를 지원하지 않습니다. 해당 기능을 원하는 경우에는 아래 셀프 서비스 네트워크 옵션을 고려합니다.

Networking Option 1: Provider networks - Service layout

네트워킹 옵션 2: 셀프 서비스 네트워크

셀프 서비스 네트워크 옵션은 VXLAN 과 같은 오버레이 세그멘테이션 방식을 사용하여 self-service 네트워크를 가능하게 하는 layer-3 (라우팅) 서비스를 포함하는 프로바이더 네트워크를 확장합니다. 근본적으로는 가상 네트워크를 NAT 를 사용하여 물리 네트워크로 라우팅합니다. 부가적으로 해당 옵션은 LBaaS, FWaaS와 같은 고급 서비스를 위한 기반을 제공합니다.

OpenStack 사용자는 데이터 네트워크 기반에 놓여 있는 인프라에 대한 지식없이 가상 네트워크를 생성할 수 있습니다. 2계층 플러그인이 정확하게 구성이 된 경우, 해당 네트워크는 VLAN 네트워크를 포함합니다.

Networking Option 2: Self-service networks - Service layout