0부터 시작하는 OpenStack 공부 - OpenStack 시작하기

Jaehong Lee·2022년 9월 13일
1
post-thumbnail

1. OpenStack 이란?

출처 : https://www.redhat.com/ko/topics/openstack
출처 : https://docs.openstack.org/ko_KR/

OpenStack 이란 풀링된 가상 리소스를 사용하여 프라이빗 및 퍼블릭 클라우드를 구축하 관리하는 오픈소스 플랫폼

  • OpenStack 플랫폼을 포함하는 툴 "프로젝트"는 컴퓨팅, 네트워킹, 스토리지 및 이미지 서비스의 핵심 클라우드 컴퓨팅 서비스를 처리한다

OpenStack 구성 요소

  • 오픈스택 아키텍처는 오픈소스 프로젝트들로 이루어져있다
    • OpenStack 은 Open Source Daemon 을 끌어모아서 하나의 서비스로 제공해준다
  • 컴퓨팅, 네트워킹, 스토리지, ID, 이미지를 처리하는 6가지의 핵심 서비스가 있으며 개발이 진행됨에 따라 수십가지 이상의 옵션이 제공된다. 이 6가지 핵심 서비스는 나머지 프로젝트에서 대시보드, 오케스트레이션, 베어메탈 프로비저닝, 메시징, 컨테이너, 거버넌스를 처리할 수 있도록 하는 인프라가 된다
    • NOVA: 오픈스택 컴퓨팅 리소스를 위한 전체 관리 및 액세스 툴로 스케줄링, 생성, 삭제를 처리를 해준다. network / router / VM 을 생성하는 컴퓨팅 서비스를 제공해준다. 이는 실질적으로 Hyper-Visor 이다
    • NEUTRON: OpenStack 서비스 전반에서 네트워크를 연결
    • SWIFT: 내결함성이 뛰어난 오브젝트 스토리지 서비스로 RESTful API를 사용해 구조화되지 않은 애플리케이션을 저장 및 검색
    • CINDER: 셀프서비스 API를 통해 액세스할 수 있는 퍼시스턴트 블록 스토리지
    • KEYSTONE: 모든 오픈스택 서비스를 인증하고 권한을 부여하며 모든 서비스를 위한 엔드포인트 카탈로그의 역할도 한다
    • GLANCE: 다양한 위치에 있는 가상머신 디스크의 이미지를 저장하고 검색

OpenStack이 지원하는 것

  • 프라이빗 클라우드
  • 퍼블릭 클라우드
  • 네트워크 기능 가상화
  • 컨테이너

2. OpenStack 인증 & 대시보드

로그인하기

  • 111 주소에 접속하자. admin / test123 으로 로그인하면 된다
  • 사용자는 cli 나 gui ( 대시보드 서비스 ) 를 통해 인증 서비스에 Data 를 넘긴다. 인증 서비스는 DATABASE 의 인증 정보와 해당 계정의 Role 을 확인한다. 인증이 되면, 사용자에게 Token 을 넘긴다
    • Token 에는 authorization ( role ) 정보와 timeout ( 유효 기간 ) 정보가 담겨있다
    • 따라서 Token 유효 기간이 끝나면 자동으로 로그아웃이 된다

대시보드 살펴보기

  • 왼쪽 admin 은 Project 명, 오른쪽 admin 은 계정 이다
    • floating Ip 는 정적 NAT 를 통해 외부와 통신이 가능한 공인 IP 이다. AWS 의 EIP 같은 것이다
    • 보안 그룹도 존재한다
    • 컴퓨팅 자원의 경우 admin 에서 제한할 수 있다

인증 살펴보기

사용자 시간을 대한민국으로 설정하자

services : Tenant for the openstack services
admin: admin tenant
demo: default tenant

  • Project 의 사용자를 살펴보면, 여러 사용자가 있다. admin 을 제외한 사용자는 모두 서비스 이다
  • 각 사용자에 대한 역활을 확인할 수 있다
  • 프로젝트 생성시, 프로젝트 참여 멤버와 해당 멤버의 프로젝트에 대한 권한을 설정할 수 있다
  • 만약, demo 계정으로 들어온다면, 일반 사용자이므로 관리 탭이 사라졌다. 이 demo 사용자는 kiamotors 프로젝트에 기본적으로 참여되있다

관리 살펴보기

기존에 남아있는 라우터, 네트워크, 이미지를 모두 삭제해주자

  • 관리는 관리자인 Admin 만 접속할 수 있다
  • 모든 사용자가 배포한 인스턴스를 확인할 수 있다
  • 이미지도 등록하여 사용 가능하다. 이 이미지를 기본 템플릿으로 인스턴스 배포에 사용할 수 있다
    • 이는 인스턴스 생성을 위한 이미지 서비스인 glance 서비스로 AWS 에서의 AMI 서비스와 비슷하다

3. Project 살펴보기

Project 간 통신 & 관리자 Admin

  • Project 는 서로 분리되어 있다. 이때, Project 의 인스턴스 간의 통신이 가능하다
    • 참여자는 각각의 인스턴스만 확인할 수 있다. 관리자인 Admin 은 인스턴스를 모두 확인할 수 있다
    • 위 그림상에서 참여자 admin 과 관리자 admin 은 다르다. 참여자 admin 은 Project 에 참여한 멤버로서의 admin 이고, 관리자 admin 은 관리자로서 관리 탭을 통해 Project 를 관리한다. 이는 AWS 의 root 사용자와 같은 것이다. 이러한 사용자를 IAM 사용자라고 한다

이미지 등록

https://docs.openstack.org/image-guide/obtain-images.html

  • download page 에 접속
  • 0.5.1 버전에 들어가서 위에 맞는 이미지를 다운 받자
  • 관리의 이미지에 들어가서 이미지 생성을 누르자
  • 위와 같이 다운 받은 이미지를 선택하여 등록하자

네트워크 생성

  • 프로젝트의 네트워크의 네트워크에 들어가자
  • 공유를 Check 하게 되면, 다른 Project 에서도 해당 네트워크를 확인할 수 있다
  • 서브넷은 위와 같이 설정한다. 게이트웨이는 지정하지 않으면 자동으로 1 로 설정된다
  • DHCP 는 201~239 로 범위를 지정하고, 외부와 통신을 하기 위해 네임 서버는 8.8.8.8 로 설정한다
  • 생성되었다

라우터 생성 및 인터페이스 설정

  • 라우터를 하나 생성하자. 이는 가상화된 라우터이다. 가용 구역을 확인하면, NOVA 라고 되어있다. 이 NOVA 가 만들어주는 것이다
    • NOVA 서비스는 network / router / VM 을 생성하는 컴퓨팅 서비스를 제공해준다. 이는 AWS 의 EC2 와 유사하다. 이는 실질적으로 Hyper-Visor 이기도 하다

  • 인터페이스를 설정해준다. 이 라우터의 인터페이스는 네트워크의 게이트웨이 이므로 1 로 지정한다
  • 연결되었다

4. 인스턴스 배포 및 활용

인스턴스 생성 및 확인

  • 인스턴스 탭에 들어가서 생성을 누르자
  • 개수를 2 로 늘리자
  • 새로운 볼륨 생성은 오류의 여지가 있으므로 사용하지 않는다. 사용 가능한 이미지를 올리자
  • flavor 는 가장 작은 것으로 한다
  • 할당된 네트워크를 확인하고, 인스턴스를 생성하자
  • DHCP 로 부터 Ip 를 할당 받았으며, Active 상태 임을 확인할 수 있다. 가용 영역은 nova 이며, 작업은 배포시 실행할 작업인데, 우리는 따로 설정하지 않았으므로 None 이다

인스턴스 접속 및 확인

  • 네트워크 토폴로지를 확인하면, 인스턴스가 생긴 것을 확인할 수 있다
  • 콘솔 열기를 눌러주자
  • 각 인스턴스의 콘솔 창을 열었다
  • 로그인 정보를 통해 로그인하고, 다른 인스턴스와 게이트 웨이에 핑을 보내보자
  • 디스크를 확인하면, vda 디스크가 파티션 되있는 것을 확인할 수 있다

5. Cli 에서 살펴보기

인증 정보 확인 및 인증

  • keystonerc_admin 에는 계정 정보가 담겨있다
    • 로그인을 위한 계정 정보, Region 정보, 로그인을 위한 Api 주소 가 나와있다
    • PS1 은 프롬프트이다. 이는 인증 성공시 보여줄 것을 설정한 것이다

  • 위와 같이 보여줄 프롬프트를 수정하자
  • source 를 통해 인증을 하면 프롬프트에 adm 이라고 나온다. 이는 Token 을 발급 받은 것이다

계정의 인스턴스 및 네트워크 확인

  • server 와 network list 를 확인하면, keystonerc_admin 에 Project 가 admin 이라고 지정되었기에, admin Project 의 인스턴스와 네트워크를 확인할 수 있다
  • 서브넷을 확인하면, ID 를 확인할 수 있다. 이는 PK 로 서브넷 식별용이다

인증 서비스

  • 이러한 인증 서비스인 keystone 은 mariadb 를 통해 제공된다
    • 여러 Database 로 구성되어 있다. glance DB 에 들어가자

  • image 테이블을 확인하면, 등록한 이미지를 확인할 수 있다

6. OpenStack 설치하는 방식

설치하는 방식

  1. 수동 설치
  2. 자동 설치
    • packstack -> 저사양에서는 POC로 one node로 사용 할 수 있다
    • devstck
    • openstack on openstack

우리는 packstack 에 answer.txt 를 통해 자동 설치하게 했다

txt 파일 확인

  • answer.txt 를 확인하자. 서비스들을 설치하는 설정이 있다. y 로 설정하면, 자동으로 패키지가 저장된 저장소로부터 패키지를 불러와서 설치해준다. 이러한 과정을 packstack 이 해준다
    • cinder : 프로비저너 제공
    • neutron : 네트워크 제공
    • horizon : 대시보드 제공

  • HOST 설정을 확인하자. 우리는 control, compute, network, storage 를 모두 111 로 하나의 Node 의 주소로 설정했다
    • 만약, compute Node 를 늘린다면, 위에 파일에 Ip 주소를 추가해주면 된다

7. Cloud 플랫폼 구조

  • Cloud 플랫폼은 위와 같다
    • Storage 는 높은 용량을 필요로 한다
    • Compute 는 다수의 Node 가 필요하다
profile
멋진 엔지니어가 될 때까지

0개의 댓글