[Hyper-V] [Open Stack] [Controller Node] [๋ถ€๊ฐ€ ๊ธฐ๋Šฅ] โ‘ข CloudKitty - ์ฒญ๊ตฌ ๋ฐ ๊ฐ€๊ฒฉ ๊ธฐ๋Šฅ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

2023. 9. 17. 02:00ใ†System ์ž‘์—…์‹ค/Server ๊ด€๋ จ

728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

 

 

 

OpenStack for Architects - Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 




๐Ÿ—‚ ๋ชฉ์ฐจ

1. [Hyper-V] [Open Stack] Open Stack์ด๋ž€?
2. [Hyper-V] [Open Stack] [Controller Node] Hyper-V ๊ตฌ์„ฑ ๋ฐ Ubuntu 22.04.3 LTS Server ์„ค์น˜
3. [Hyper-V] [Open Stack] [Controller Node] โ‘  ์˜คํ”ˆ์Šคํƒ ํŒจํ‚ค์ง€ ์„ค์น˜
4. [Hyper-V] [Open Stack] [Controller Node] โ‘ก NTP Server ๊ตฌ์„ฑ
5. [Hyper-V] [Open Stack] [Controller Node] โ‘ข RabbitMQ - Message Queue ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
6. [Hyper-V] [Open Stack] [Controller Node] โ‘ฃ Memcached ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
7. [Hyper-V] [Open Stack] [Controller Node] โ‘ค Etcd ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
8. [Hyper-V] [Open Stack] [Controller Node] โ‘ฅ Keystone - Identity ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
9. [Hyper-V] [Open Stack] [Controller Node] โ‘ฆ Image Service - Glance ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ  
10. [Hyper-V] [Open Stack] [Controller Node] โ‘ง Compute Service - Nova ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
11. [Hyper-V] [Open Stack] [Contoller Node] โ‘จ Neutron - Network ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
12. [Hyper-V] [Open Stack] [Controller Node] โ‘ โ“ช Horizon - Dashboard ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

13. [Hyper-V] [Open Stack] [Compute Node] Hyper-V ๊ตฌ์„ฑ ๋ฐ Ubuntu 22.04.3 LTS Server ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐ ๊ตฌ์„ฑ
14. [Hyper-V] [Open Stack] [Compute Node] โ‘  ์˜คํ”ˆ์Šคํƒ ํŒจํ‚ค์ง€ ์„ค์น˜
15. [Hyper-V] [Open Stack] [Compute Node] โ‘ก Nova ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
16. [Hyper-V] [Open Stack] [Compute Node] โ‘ข Neutron - Network ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

 

 

 

 

๐Ÿš€ Controller Node ๊ตฌ์„ฑ

    ๐Ÿ”ฝ ๊ฐœ์š”

์ฃผ๋‹ˆ์˜ ์˜คํ”ˆ์Šคํƒ ๊ตฌ์„ฑ๋„

 

 

 

 

 

       ๐Ÿ“ฆ ์†Œ๊ฐœ

CloudKitty๋Š” ์˜คํ”ˆ์Šคํƒ์„ ์œ„ํ•œ Rating-as-aService์—์š”.
์ฆ‰, ์˜คํ”ˆ์Šคํƒ์—๋Š” ์—†๋Š” Pricing, Billing ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด์—์š”.
์˜คํ”ˆ์Šคํƒ Ceilometer์™€ ์—ฐ๋™๋˜์–ด ์‚ฌ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ๊ณผ๊ธˆ ์ •์ฑ…์„ ์žก๋Š” ๋“ฑ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ๋ฐœํŒ์œผ๋กœ ์‚ผ์„ ์ˆ˜ ์žˆ์–ด์š”.

์ฆ‰, ์˜คํ”ˆ ์†Œ์Šค ๋น„์šฉ ๊ด€๋ฆฌ ๋ฐ ์ž์› ์ถ”์  ๋„๊ตฌ๋กœ ์˜คํ”ˆ์Šคํƒ ๊ธฐ๋ฐ˜ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๋น„์šฉ ๋ฐ ์ž์› ์‚ฌ์šฉ์— ๋Œ€ํ•œ ํˆฌ๋ช…์„ฑ์„ ์ œ๊ณตํ•ด์š”.
CloudKitty๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋ฐ ์ž์› ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ๋ถ„์„ํ•˜์—ฌ ๋น„์šฉ์„ ์ตœ์ ํ™” ํ•˜๊ณ , ์ž์› ์‚ฌ์šฉ์„ ํšจ์œจํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ต๋‹ˆ๋‹ค.

์ด ๋„๊ตฌ๋Š” ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ธ์Šคํ„ด์Šค, ์Šคํ† ๋ฆฌ์ง€, ๋„คํŠธ์›Œํฌ ๋“ฑ๊ณผ ๊ฐ™์€ ์ž์›์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ํ•ด๋‹น ์ž์›์˜ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜๋ฉฐ, ๋น„์šฉ์„ ๋ถ„์„ํ•˜์—ฌ ์ž์› ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒํ•˜๋Š”๋ฐ, ๋„์›€์„ ์ค€๋‹ต๋‹ˆ๋‹ค.

CloudKitty๋Š” ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต ์—…์ฒด, ๊ธฐ์—… ๋ฐ ์กฐ์ง์ด ํด๋ผ์šฐ๋“œ ๋น„์šฉ ๊ด€๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ๋น„์šฉ์„ ์ค„์ด๋Š”๋ฐ, ๋„์›€์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์ฃผ๋‹ˆ๊ฐ€ ์ด๊ฒƒ์„ ์„ค์น˜ํ•˜๋ ค๋Š” ์ด์œ ๋Š” ๊ฐœ์ธ ํด๋ผ์šฐ๋“œ์— ๊ฐ ์ข… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ์ด์šฉํ•ด๋ณด๋ฉด์„œ TCO๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด ๋ณด๊ณ , ๋˜ํ•œ, ์–ด๋Š์ •๋„ ์ด์šฉ์ž ์œ ์ž…์ด ์žˆ์–ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ, ๊ทธ๋•Œ๋„ ์ตœ์†Œํ•œ์˜ TCO๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐœํŒ์œผ๋กœ ์‚ผ์œผ๋ ค๊ณ  ํ•ด์š”.

 

 

 

    ๐Ÿ”ฝ ๊ตฌ์„ฑ ์š”์†Œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

       ๐Ÿ“ฆ CloudKitty ์ดˆ๊ธฐ ๊ตฌ์„ฑ - ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ

์ตœ์ดˆ Keystone์— ๊ณ„์ • ๋ฐ ์„œ๋น„์Šค, ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค„๊ฒŒ์š”.


openstack user create --domain default --project service --password servicepassword cloudkitty

 


๋จผ์ € ์œ„์™€ ๊ฐ™์ด ๊ณ„์ •์„ ์ƒ์„ฑํ•ด ์ฃผ์—ˆ์–ด์š”.



openstack role add --project service --user cloudkitty admin


๊ทธ๋ฆฌ๊ณ , ํ•ด๋‹น ๊ณ„์ •์—๊ฒŒ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ์ฃผ์—ˆ์–ด์š”.


openstack role create rating


๊ทธ๋ฆฌ๊ณ , ์œ„์™€ ๊ฐ™์ด rating์ด๋ผ๋Š” ๊ถŒํ•œ์„ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.



openstack service create --name cloudkitty --description "OpenStack Rating Service" rating


์œ„์™€ ๊ฐ™์ด rating์ด๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.



export cloudkitty_api=private-controller; openstack endpoint create --region RegionOne rating public http://$cloudkitty_api:8889; openstack endpoint create --region RegionOne rating internal http://$cloudkitty_api:8889



openstack endpoint create --region RegionOne rating admin http://$cloudkitty_api:8889



๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.




๊ทธ๋ฆฌ๊ณ , ์œ„์™€ ๊ฐ™์ด DB์™€ ๊ณ„์ •์„ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.




์ด์ œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์„ค์ • ์ž‘์—…์— ๋Œ์ž…ํ•ด ๋ณผ๊ฒŒ์š”.

apt install -y cloudkitty-api cloudkitty-processor python3-cloudkittyclient















์œ„ ๋‚ด์šฉ๋“ค์„ ๋ฌผ์–ด๋ณด๋ฉด No๋ฅผ ์„ ํƒํ•ด ์ค๋‹ˆ๋‹ค.




vim /etc/cloudkitty/cloudkitty.conf [DEFAULT]

 

[DEFAULT]
log_dir = /var/log/cloudkitty
transport_url = rabbit://openstack:password@private-controller
auth_strategy = keystone




vim /etc/cloudkitty/cloudkitty.conf [collect]

 

[collect]
collector = gnocchi
# set period for rating
# default is 3600 (sec)
# * following short period is for testing one
period = 600
metrics_conf = /etc/cloudkitty/metrics.yml




vim /etc/cloudkitty/cloudkitty.conf [collector_gnocchi]



[collector_gnocchi]
auth_section = keystone_authtoken
region_name = RegionOne





vim /etc/cloudkitty/cloudkitty.conf [database]

 

[database]
connection = mysql+pymysql://cloudkitty:password@192.168.20.254/cloudkitty





vim /etc/cloudkitty/cloudkitty.conf [fetcher]

 

[fetcher]
backend = gnocchi




vim /etc/cloudkitty/cloudkitty.conf [fetcher_keystone]



[fetcher_gnocchi]
auth_section = keystone_authtoken
region_name = RegionOne





 

[fetcher_keystone]
keystone_version = 3
auth_section = keystone_authtoken
region_name = RegionOne



 

 

vim /etc/cloudkitty/cloudkitty.conf [keystone_authtoken]

728x90
[keystone_authtoken]
www_authenticate_uri = http://private-controller:5000/v3
auth_url = http://private-controller:5000/v3
memcached_servers = private-controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cloudkitty
password = servicepassword
region_name = RegionOne
service_token_roles_required = true
# if using self-signed certs on Apache2 Keystone, turn to [true]
insecure = false




vim /etc/cloudkitty/cloudkitty.conf [oslo_messaging_notifications]

 

[oslo_messaging_notifications]
driver = messagingv2
transport_url = rabbit://openstack:password@private-controller

 

 

 

vim /etc/cloudkitty/cloudkitty.conf [storage]



[storage]
backend = sqlalchemy
version = 1





vim /etc/cloudkitty/cloudkitty.conf [orchestrator]

 

[orchestrator]
coordination_url = mysql://cloudkitty:password@192.168.20.254/cloudkitty

 

 

์—ฌ๊ธฐ๊นŒ์ง€ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ์œผ๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์˜ต๋‹ˆ๋‹ค.




vim /etc/cloudkitty/metrics.yml

๋ฐ˜์‘ํ˜•
metrics:
  cpu:
    unit: instance
    alt_name: instance
    groupby:
      - id
      - user_id
      - project_id
    metadata:
      - flavor_name
      - flavor_id
      - vcpus
    mutate: NUMBOOL
    extra_args:
      aggregation_method: mean
      resource_type: instance
      force_granularity: 300

  volume.size:
    unit: GiB
    groupby:
      - id
      - user_id
      - project_id
    metadata:
      - volume_type
    extra_args:
      aggregation_method: mean
      resource_type: volume
      force_granularity: 300

๊ธฐ์กด์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด ์ฃผ์—ˆ์–ด์š”.

 

chmod 640 /etc/cloudkitty/{cloudkitty.conf,metrics.yml}; chgrp cloudkitty /etc/cloudkitty/{cloudkitty.conf,metrics.yml}


์œ„์™€ ๊ฐ™์ด ํ•„์š” ์„ค์ • ํŒŒ์ผ๋“ค์˜ ๊ถŒํ•œ๊ณผ ์†Œ์œ  ๊ทธ๋ฃน์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์–ด์š”.



su -s /bin/bash cloudkitty -c "cloudkitty-dbsync upgrade"



su -s /bin/bash cloudkitty -c "cloudkitty-storage-init"



๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด ์ฃผ์—ˆ์–ด์š”.



systemctl restart cloudkitty-api cloudkitty-processor; systemctl enable cloudkitty-api cloudkitty-processor



๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด ๋ฐ๋ชฌ์„ ์žฌ๊ธฐ๋™ํ•˜๊ณ , ์„œ๋น„์Šค์— ๋“ฑ๋กํ•ด ์ฃผ์—ˆ์–ด์š”.



 

 

 

 

Openstack Essentials Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

๐Ÿง ์ฐธ๊ณ  ์ž๋ฃŒ

 

Ubuntu 22.04 LTS : OpenStack Zed : Configure CloudKitty : Server World

root@dlp ~(keystone)# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9416 Server version: 10.6.7-MariaDB-2ubuntu1.1 Ubuntu 22.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help

www.server-world.info

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•