Glance: Image Service (VM 이미지 관리 서비스)
1. Glance 이미지 서비스는 VM 이미지를 발견하고, 등록하고 검색하는 기능을 제공한다.
2. Glance는 실제 이미지 검색 및 VM 이미지의 metadata 요청을 지원하는 RESTful API를 가진다.
3. Glance를 통해 사용가능해진 VM 이미지는 Swift 스토리지나 설정한 디렉토리 등 다양한 위치에 저장된다.
4. 다른 오픈스택 프로젝트(서비스)와 마찬가지로 Glance는 다음의 디자인 가이드라인을 따른다:
- 컴포넌트 기반 아키텍처(Component-based architecture): 빠르고 새로운 behaviors
- 고가용성(High available): 과부하에 대한 scale 조정
- 결함 허용(Fault Tolerance): 서로 독립된 프로세스를 통해 cascading failure 방지
- 회복성(Recoverable): 오류에 대한 진단, 디버그 및 수정이 쉬움
- 개방형 표준(Open standard): 커뮤니티발(driven) api 에 대한 참조 구현
✋ Prerequisties .
서비스 정보를 입력할 오픈스택 기본 환경설정 필요
참조: https://4betterme.tistory.com/39
<< ⭕ Glance 서비스 설치는 컨트롤러 노드에서 진행 >>
🔨 데이터베이스 , 서비스 인증, API Endpoint 생성
🟢 Mysql 에서 glance 데이터 베이스를 생성한 다음, 해당 데이터베이스에 접속권한 부여 :
# mysql -u root -p
[root 비밀번호 입력]하여 mariadb 접속
-------------------------------
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \ IDENTIFIED BY '[glance db 비밀번호]';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \ IDENTIFIED BY '[glance db 비밀번호]';
MariaDB [(none)]> exit;
🟢 admin 계정 인증 실행 :
# source key_adminrc[환경변수 설정 스크립트]
🟢 Glance 계정 생성 및 admin 역할-glance 계정 - service 프로젝트 연결 :
# openstack user create --domain default --password-prompt glance
---------------------------------
User Password: (test123)[glance 계정 패스워드]
Repeat User Password:
# openstack role add --project service --user glance admin
🟢 Glance 서비스 생성 :
# openstack service create --name glance --description "OpenStack Image" image
🟢 Glance API Endpoint 생성 :
# openstack endpoint create --region RegionOne image public http://[컨트롤러 노드 관리용 ip]:9292
# openstack endpoint create --region RegionOne image internal http://[컨트롤러 노드 관리용 ip]:9292
# openstack endpoint create --region RegionOne image admin http://[컨트롤러 노드 관리용 ip]:9292
🔨 Glance 서비스 설치 및 구성
🟢 Glance 패키지 설치 :
# yum -y install openstack-glance
🟢 glance-api 설정 파일 수정 :
# vi /etc/glance/glance-api.conf
--------------------------------------
[database]
# ...
connection = mysql+pymysql://glance:[glance db 비밀번호]@[컨트롤러 관리용 ip]/glance
[keystone_authtoken]
# ...
www_authenticate_uri = http://[컨트롤러 관리용 ip]:5000
auth_url = http://[컨트롤러 관리용 ip]:5000
memcached_servers = [컨트롤러 관리용 ip]:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = [glance 비밀번호] : the password you chose for the glance user in the Identity service
[paste_deploy]
# ...
flavor = keystone
[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
🟢 glance-registry 설정 파일 수정 :
# vi /etc/glance/glance-registry.conf
--------------------------------------
[database]
# ...
connection = mysql+pymysql/://glance:[glance db 비밀번호]@[컨트롤러 관리용 ip]/glance
[keystone_authtoken]
# ...
www_authenticate_uri = http://[컨트롤러 관리용 ip]:5000
auth_url = http://[컨트롤러 관리용 ip]:5000
memcached_servers = [컨트롤러 관리용 ip]:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = [glance 비밀번호] : the password you chose for the glance user in the Identity service
[paste_deploy]
# ...
flavor = keystone
🟢 특정 계정으로 쉘 스크립트 실행시켜 glance 데이터베이스 Populate (테이블 생성) :
# su -s /bin/sh -c "glance-manage db_sync" glance
🔨 설치 마무리
🟢 glance-api 및 glance-registry 서비스 실행 및 활성화
# systemctl enable openstack-glance-api.service openstack-glance-registry.service
# systemctl start openstack-glance-api.service openstack-glance-registry.service
🔫 Trouble Shooting
🔴 ERROR : TOKEN 관련 오류 발생
WARNING keystonemiddleware._common.config [-] The option "__file__" in conf is not known to auth_token
WARNING keystonemiddleware._common.config [-] The option "here" in conf is not known to auth_token
WARNING keystonemiddleware.auth_token [-] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
🟠 컨트롤러 노드의 오픈스택 서비스를 담는 데이터베이스의 glance database명 오타 발견
🟢 Trouble shooting : mariadb 접속하여 DB명 수정 후 다시 glance 데이터베이스 Populate
📍 Verification: 이미지 생성
작은 사이즈의 리눅스 이미지인 cirros를 활용하여 Glance 서비스의 정상 작동을 확인하자.
🟢 admin credential 스크립트 실행
# source key-adminrc
🟢 admin credential 스크립트 실행
# yum -y install wget
# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
🟢 이미지 업로드 :
# openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
=> "cirros"라는 이름의 이미지를 생성cirros-0.4.0-x86_64-disk.img 파일을 활용하여
=> --file: cirros-0.4.0-x86_64-disk.img 파일을 활용하여
=> --disk-format: 디스크 포맷은 qcow2으로
=> --container-format: 이미지 서비스 컨테이너의 포맷이 bare인 경우 해당 VM 이미지를 위한 컨테이너가 존재하지 않는다는 뜻
=> --public: 모든 프로젝트가 접근할 수 있는 형태
🟢 이미지 업로드된 이미지 확인 및 속성 확인 :
# openstack image list
'자기발전소 > # Manually Install OpenStack' 카테고리의 다른 글
Openstack Neutron on Centos (Rocky) 1 [Controller Node] (0) | 2020.08.22 |
---|---|
Openstack Nova on Centos (Rocky) 2 [Compute Node] (0) | 2020.08.21 |
Openstack Nova on Centos (Rocky) 1 [Controller Node] (0) | 2020.08.21 |
Openstack Keystone on Centos (Rocky) (0) | 2020.08.18 |
Openstack on Centos 환경 설정(Rocky, 매뉴얼 설치) (0) | 2020.08.11 |