728x90

Ⅴ. Docker

1.      Docker 설치

2.      Docker 실행

728x90
728x90

. 인스턴스 실행

1.     네트워크 생성

1.1. Public 네트워크

아래와 같은 설정으로 Public 네트워크를 생성한다. 이 때 반드시 외부 네트워크 체크박스를 확인해준다.

Public 네트워크의 서브넷을 지정한다.

DHCP 사용 여부를 설정하고 서브넷의 범위를 할당해준다.

1.2. Private 네트워크

아래와 같은 설정으로 Private 네트워크를 생성한다.

Private 네트워크 역시 서브넷을 설정해준다.

Public 네트워크와 Private 네트워크가 제대로 생성된 것을 확인할 수 있다.

1.3. Router

라우터를 생성한다.

라우터를 생성한 후에 확인할 수 있다.

네트워크 토폴로지에서 인터페이스 추가를 하여 내부 인터페이스를 외부 게이트웨이와 연결한다.

2.     보안 그룹 생성

보안 그룹 생성 후 규칙을 추가한다.

ICMP, SSH, HTTP 포트가 보안 그룹 규칙에 추가된 것을 확인할 수 있다.

3.     이미지 생성

4.     키 페어 생성

5.     Flavor 생성

6.     인스턴스 시작

728x90
728x90

7.     Cinder

블록 스토리지 서비스 (cinder)는 블록 스토리지 장치를 게스트 인스턴스에 제공한다. 스토리지가 프로비저닝되고 소비되는 방법은 블록 스토리지 드라이버 또는 다중 백엔드 구성의 경우 드라이버에 의해 결정된다. NAS / SAN, NFS, iSCSI, Ceph 등 다양한 드라이버가 제공된다.

블록 스토리지 API 및 스케줄러 서비스는 일반적으로 컨트롤러 노드에서 실행된다. 사용 된 드라이버에 따라 볼륨 서비스는 컨트롤러 노드, 컴퓨팅 노드 또는 독립형 스토리지 노드에서 실행될 수 있다.

7.1. Controller Node 1

7.1.1.      전제 조건

블록 스토리지 서비스를 설치 및 구성하기 전에 데이터베이스, 서비스 신임 정보 및 API 엔드 포인트를 작성한다.

먼저 데이터베이스 생성을 한다.
데이터베이스 액세스 클라이언트를 사용하여 root사용자로서 데이터베이스 서버에 연결한다.
cinder
데이터베이스를 생성하고 데이터베이스에 대한 액세스 권한을 부여한다.

admin신임 정보를 소싱하여 관리자 전용 CLI 명령에 액세스한다.
서비스 자격 증명을 생성한다.

admin 사용자에게 cinder 역할을 추가하고 cinderv2 cinderv3 서비스 엔티티를 생성한다.

블록 스토리지 서비스 API 엔드 포인트를 생성한다.

7.1.2.      구성 요소 설치 및 구성

패키지를 설치하고 파일을 편집한다.

블록 스토리지 데이터베이스를 채운다.

7.1.3.      블록 스토리지를 사용하도록 컴퓨팅을 구성한다.

7.2. Compute Node

7.3. Controller Node 2

7.3.1.      설치 완료

7.4. Storage Install Compute Node 2

7.4.1.      전제 조건

지원 유틸리티 패키지를 설치한다.
LVM
패키지를 설치한다.

LVM 메타 데이터 서비스를 시작하고 시스템 부팅시 시작되도록 구성한다.

LVM 물리 볼륨과 볼륨 그룹을 생성한다.

# pvcreate /dev/sdb
# vgcreate cinder-volumes /dev/sdb

인스턴스만 블록 스토리지 볼륨에 액세스 할 수 있다. 그러나 기본 운영 체제는 볼륨과 관련된 장치를 관리한다. 기본적으로 LVM 볼륨 검색 도구 /dev는 볼륨이 포함 된 블록 저장 장치 의 디렉토리를 검색한다. 프로젝트가 볼륨에서 LVM을 사용하는 경우 스캐닝 도구는 이러한 볼륨을 감지하고이를 캐시하려고 시도하여 기본 운영 체제 및 프로젝트 볼륨 모두에 다양한 문제를 일으킬 수 있다. cinder-volumes 볼륨 그룹 이 포함 된 장치 만 스캔하도록 LVM을 재구성한다.

‘/dev/sda’, ‘/dev/sdb’ 장치를 제외한 다른 장치는 거부한다.

7.4.2.      구성 요소 설치 및 구성

패키지를 설치하고 파일을 편집한다.

[lvm]섹션에서 LVM 드라이버, cinder-volumes볼륨 그룹, iSCSI 프로토콜 및 적절한 iSCSI 서비스를 사용하여 LVM 백엔드를 구성한다.

7.4.3.      설치 완료

종속성을 포함하여 블록 스토리지 볼륨 서비스를 시작하고 시스템 부팅 시 시작되도록 구성한다.

 

7.5. Controller Node 3

7.5.1.      작동 확인

프로세스가 성공적으로 시작되었는지 확인한다.

728x90
728x90

6.     Dashboard

대시 보드에 필요한 유일한 핵심 서비스는 ID 서비스다. 이미지 서비스, 컴퓨팅 및 네트워킹과 같은 다른 서비스와 함께 대시 보드를 사용할 수 있다.

6.1. Controller Node

6.1.1.      구성 요소 설치 및 구성

패키지를 설치한다.

controller노드 에서 OpenStack 서비스를 사용하도록 대시 보드를 구성한다. 호스트가 대시 보드에 액세스하도록 허용한다.

API 버전을 구성한다.

도메인 지원을 활성화 한다.

Default 대시 보드를 통해 생성한 사용자의 기본 도메인으로 구성한다.

memcached세션 스토리지 서비스를 구성한다.

Identity API 버전 3을 활성화한다.
user
대시보드를 통해 작성하는 사용자의 기본 역할로 구성 한다.

네트워킹 옵션 1을 선택한 경우 레이어3 네트워킹 서비스에 대한 지원을 비활성화한다.

시간대를 구성한다.

/etc/httpd/conf.d/openstack-dashboard.conf 파일에서 WSGIApplicationGroup %{GLOBAL} 행을 추가한다.

6.2.1.      설치 완료

웹 서버 및 세션 스토리지 서비스를 다시 시작한다.

해당 대시보드로 접속을 시도하여 대시보드 생성이 제대로 되었는지 확인한다.

728x90
728x90

5.      Neutron

OpenStack Networking (neutron)을 사용하면 다른 OpenStack 서비스에서 관리하는 인터페이스 장치를 만들어 네트워크에 연결할 수 있다. 플러그인은 다양한 네트워킹 장비 및 소프트웨어를 수용하도록 구현되어 OpenStack 아키텍처 및 배포에 유연성을 제공한다.

5.1. Controller Node1

5.1.1.      전제 조건

OpenStack Networking (neutron) 서비스를 구성하기 전에 데이터베이스, 서비스 신임 정보 및 API 엔드 포인트를 작성해야한다.

 

데이터베이스를 만들려면 다음 단계를 완료한다.
데이터베이스 액세스 클라이언트를 사용하여 root사용자로서 데이터베이스 서버에 연결한다.
neutron
데이터베이스를 생성한다.
neutron
데이터베이스에 액세스 권한을 부여한다.

admin신임 정보를 소싱하여 관리자 전용 CLI 명령에 액세스한다.
서비스 자격 증명을 만들려면 다음 단계를 완료한다.
neutron
사용자를 생성한다.

admin 사용자에게 neutron 역할을 추가하고 neutron 서비스 엔티티를 생성한다.

네트워킹 서비스 API 엔드 포인트를 작성한다.

5.1.2.      네트워킹 옵션 구성 : 셀프 서비스 네트워크

셀프 서비스 네트워크에 인스턴스 연결을 지원하는 계층 3 서비스로 옵션 1을 향상시킨다.

demo또는 다른 권한이없는 사용자는 셀프 서비스 및 제공 업체 네트워크 사이의 연결을 제공하는 라우터를 포함하여 셀프 서비스 네트워크를 관리 할 수 있다. 또한 유동 IP 주소는 인터넷과 같은 외부 네트워크의 셀프 서비스 네트워크를 사용하여 인스턴스에 대한 연결을 제공한다.

 

컨트롤러 노드에 네트워킹 구성 요소를 설치하고 구성한다.

서버 구성 요소를 구성한다.
/etc/neutron/neutron.conf
파일을 편집한다.

ML2 (Modular Layer 2) 플러그인을 구성한다.
ML2
플러그인은 Linux 브리지 메커니즘을 사용하여 인스턴스에 대한 계층 2 (브리징 및 스위칭) 가상 네트워킹 인프라를 구축한다.
/etc/neutron/plugins/ml2/ml2_conf.ini
파일을 편집한다.

Linux 브릿지 에이전트를 구성한다.
Linux
브리지 에이전트는 인스턴스를위한 계층 -2 (브리징 및 스위칭) 가상 네트워킹 인프라를 구축하고 보안 그룹을 처리한다.
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
파일을 편집한다.

계층 3 에이전트를 구성한다.
Layer-3 (L3)
에이전트는 셀프 서비스 가상 네트워크를위한 라우팅 및 NAT 서비스를 제공한다.
/etc/neutron/l3_agent.ini
파일을 편집한다.

DHCP 에이전트를 구성한다.
DHCP
에이전트는 가상 네트워크에 DHCP 서비스를 제공한다.
/etc/neutron/dhcp_agent.ini
파일을 편집한다.

[DEFAULT]섹션 에서는 Linux 브리지 인터페이스 드라이버, Dnsmasq DHCP 드라이버를 구성하고 격리 된 메타 데이터를 활성화하여 공급자 네트워크의 인스턴스가 네트워크를 통해 메타 데이터에 액세스 할 수 있다.

5.1.3.      메타데이터 에이전트 구성

메타 데이터 에이전트는 자격 증명과 같은 구성 정보를 인스턴스에 제공한다.

5.1.4.      네트워킹 서비스를 사용하도록 컴퓨팅 서비스를 구성한다.

 

 

 

 

5.1.5.      설치 완료

네트워킹 서비스 초기화 스크립트 /etc/neutron/plugin.ini에는 ML2 플러그인 구성 파일을 가리키는 기호 링크 가 필요하다. /etc/neutron/plugins/ml2/ml2_conf.ini. 이 기호 링크가 존재하지 않으면 다음 명령을 사용하여 작성한다.
데이터베이스를 채운다.

Compute API 서비스를 다시 시작한다.
네트워킹 서비스를 시작하고 시스템 부팅시 시작되도록 구성한다.

레이어 3 서비스도 활성화하고 시작한다.

5.2. Compute Node 1

5.2.1.      구성 요소 설치

5.2.2.      공통 구성 요소 구성

네트워킹 공통 구성 요소 구성에는 인증 메커니즘, 메시지 큐 및 플러그인이 포함된다.

5.2.3.      네트워킹 옵션 구성 : 셀프 서비스 네트워크

Linux 브릿지 에이전트를 구성한다.
Linux
브리지 에이전트는 인스턴스를위한 계층 -2 (브리징 및 스위칭) 가상 네트워킹 인프라를 구축하고 보안 그룹을 처리한다.

5.2.4.      네트워킹 서비스를 사용하도록 컴퓨팅 서비스를 구성한다.

 

5.2.5.      설치 완료

컴퓨팅 서비스를 재시작한다.

Linux 브릿지 에이전트를 시작하고 시스템 부팅시 시작되도록 구성한다.

5.3. Controller Node 2

5.3.1.      작동 확인

컨트롤러 노드에 4 개의 에이전트와 각 계산 노드에 1 개의 에이전트를 표시해야한다.

728x90
728x90

4.     Nova

OpenStack Compute 서비스를 사용하여 클라우드 컴퓨팅 시스템을 호스팅하고 관리한다.

 

Controller
컨트롤러 노드는 ID 서비스, 이미지 서비스, 컴퓨팅의 관리 부분, 네트워킹의 관리 부분, 다양한 네트워킹 에이전트 및 대시 보드를 실행한다. 또한 SQL 데이터베이스, 메시지 대기열 및 NTP (Network Time Protocol)와 같은 지원 서비스도 포함된다.

 

Compute
컴퓨팅 노드는 인스턴스를 운영하는 Compute의 하이퍼 바이저 부분을 실행한다. 기본적으로 Compute는 커널 기반 VM (KVM) 하이퍼 바이저를 사용한다. 컴퓨팅 노드는 또한 인스턴스를 가상 네트워크에 연결하고 보안 그룹을 통해 인스턴스에 방화벽 서비스를 제공하는 네트워킹 서비스 에이전트를 실행한다.

4.1. Controller Node 1

4.1.1.      전제 조건

설치 및 계산 서비스를 구성하기 전에, 데이터베이스, 서비스 자격 증명 및 API 엔드 포인트를 작성해야한다.

데이터베이스 액세스 클라이언트를 사용하여 root사용자로서 데이터베이스 서버에 연결한다.
nova_api, nova
nova_cell0데이터베이스를 만든다.
데이터베이스에 대한 적절한 액세스 권한을 부여한다.

admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스한다.

컴퓨팅 서비스 자격 증명을 만든다.
nova
사용자를 작성한다.

사용자 admin에게 nova 사용자 역할을 추가한다.
nova
서비스 엔티티를 생성한다.

Compute API 서비스 엔드 포인트를 생성한다.

4.1.2.      구성 요소 설치 및 구성

패키지를 설치한다.

/etc/nova/nova.conf 파일을 열고 아래와 같이 수정한다.

 

nova-api 데이터베이스를 채운다.
cell0
데이터베이스를 등록한다.
cell1
셀을 생성한다.
nova
데이터베이스를 채운다.

nova cell0 cell1이 올바르게 등록되었는지 확인한다.

4.1.3.      설치 완료

4.2. Compute Node 1

이 서비스는 여러 하이퍼 바이저를 지원하여 인스턴스 또는 가상 머신 (VM)을 배포한다. 간단하게하기 위해이 구성은 가상 머신의 하드웨어 가속을 지원하는 컴퓨팅 노드에서 커널 기반 VM (KVM) 확장이있는 QEMU (Quick EMUlator) 하이퍼 바이저를 사용한다.

 

4.2.1.      구성 요소 설치 및 구성

패키지를 설치한다.

/etc/nova/nova.conf 파일을 편집한다.

4.2.2.      설치 완료

컴퓨팅 노드가 가상 머신에 대한 하드웨어 가속을 지원하는지 판별한다.

종속성을 포함하여 Compute 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 구성한다.

4.3. Controller Node 2

셀 데이터베이스에 compute 노드 추가
관리자 자격 증명을 소싱하여 관리자 전용 CLI 명령을 활성화 한 다음 데이터베이스에 컴퓨팅 호스트가 있는지 확인한다.

4.3.1.      작동 확인

각 프로세스의 성공적인 시작 및 등록을 확인하기 위해 서비스 구성 요소를 나열한다.

Identity 서비스에 API 엔드 포인트를 나열하여 Identity 서비스와의 연결을 확인한다.

이미지 서비스에 이미지를 나열하여 이미지 서비스와의 연결을 확인한다.

셀 및 배치 API가 제대로 작동하고 다른 필수 전제 조건이 있는지 확인한다.

파일에 내용을 편집한다.

시스템을 재시작하고 셀 및 배치 API가 제대로 작동하는지 확인한다. 에러가 날 경우에 아래와 같이 명령어를 실행한다.

그리고 다시 명령어를 실행하면 에러가 해결된 것을 확인할 수 있다.

 

728x90
728x90

3.     Placement

placement 서비스는 자원 제공자 인벤토리 및 사용량을 추적하는 데 사용되는 HTTP API를 제공한다.

3.1. Controller Node

3.1.1.      전제 조건

서비스를 설치 및 구성하기 전에 데이터베이스, 서비스 신임 정보 및 API 엔드 포인트를 작성해야한다.

 

데이터베이스 만들기
데이터베이스 액세스 클라이언트를 사용하여 root사용자로서 데이터베이스 서버에 연결한다.
placement데이터베이스를 작성한다.
데이터베이스에 대한 적절한 액세스 권한을 부여한다.

사용자 및 엔드 포인트 구성

admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스하고 선택한 서비스를 사용하여 게재 위치 서비스 사용자를 만든다.

관리자 역할을 사용하여 게재 위치 사용자를 서비스 프로젝트에 추가한다.
서비스 카탈로그에서 Placement API 항목을 작성한다.

Placement API 서비스 엔드 포인트를 작성한다.

3.1.2.      구성 요소 설치 및 구성

패키지를 설치한다.

/etc/placement/placement.conf 파일을 편집한다.

 

3.1.3.      설치 완료

placement 서비스 데이터베이스를 넣어주고 httpd 서비스를 재시작한다.

728x90
728x90

2.     Glance

이미지 서비스 (glance)는 사용자들이 가상 머신 이미지를 찾고, 등록과 가져오도록 활성화한다. 이미지 서비스는 가상 머신 이미지 메타데이터에 질의하여 실제 이미지를 가져오도록 해 주는 REST API를 제공한다. 이미지 서비스를 통해 파일 시스템부터 OpenStack 오브젝트 스토리지와 같은 오브젝트 스토리지 시스템까지 다양한 위치에 사용 가능하도록 가상 머신 이미지를 저장할 수 있다.

 

이 섹션에서는 컨트롤러 노드에 glance라는 코드 이름을 가진 이미지 서비스를 설치하고 구성한다. 간략화하여 해당 구성에서는 이미지를 로컬 파일 시스템에 저장한다.

2.1. Controller Node

2.1.1.      선행 조건

이미지 서비스를 설치 및 구성하기 전에, 데이터베이스, 서비스 credential, 엔드포인트를 생성해야한다.

데이터베이스를 생성하기 위하여, 다음 과정을 완료해야한다.
데이터베이스 액세스 클라이언트를 사용하여 데이터베이스 서버에 root 사용자로 연결하고 glance 데이터베이스를 생성한다.
glance
데이터베이스에 대해 적합한 액세스를 부여한다.

admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스를 갖는다.

서비스 credential을 생성하기 위해, 다음 스텝들을 완료한다.
glance
사용자를 생성한다.

admin 역할을 glance 사용자와 service 프로젝트에 추가한다.

glance 서비스 엔티티를 생성한다.

이미지 서비스 API 엔드포인트를 생성한다.

2.1.2.      구성 요소 설치 및 구성

패키지를 설치한다.

/etc/glance/glance-api.conf 파일을 편집하여 다음 작업을 완료한다.

 

 

/etc/glance/glance-registry.conf 파일을 편집하여 다음 작업을 완료한다.

이미지 서비스 데이터베이스를 넣어준다.

2.1.3.      설치 마무리

스템 부팅시에 이미지 서비스를 시작하고 환경설정을 시작한다.

 

이미지 파일을 다운로드하기 위해 패키지를 설치한다.

이미지 파일을 다운로드 한다.

2.1.4.      검증 과정

OpenStack 배포를 테스트하는데 돕는 작은 리눅스 이미지인 CirrOS 를 사용하여 이미지 서비스에 대한 동작을 검증한다.

 

admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스를 갖는다.
QCOW2
디스크 포맷, bare 컨테이너 포맷과 모든 프로젝트에서 액세스 가능하도록 하는 공용으로 보이기를 사용하여 이미지를 이미지 서비스에 업로드한다.

이미지 업로드를 확인하고 속성들을 검증한다.

728x90

+ Recent posts