OpenStack Zed : CloudKitty 利用方法2022/10/19 |
|
OpenStack Rating Service (CloudKitty) の利用方法です。
当例では以下のような環境を例に CloudKitty をインストールしています。
------------+-----------------------------+-----------------------------+------------
| | |
eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51
+-----------+-----------+ +-----------+-----------+ +-----------+-----------+
| [ dlp.srv.world ] | | [ network.srv.world ] | | [ node01.srv.world ] |
| (Control Node) | | (Network Node) | | (Compute Node) |
| | | | | |
| MariaDB RabbitMQ | | Open vSwitch | | Libvirt |
| Memcached Nginx | | Neutron Server | | Nova Compute |
| Keystone httpd | | OVN-Northd | | Open vSwitch |
| Glance Nova API | | Nginx iSCSI Target | | OVN Metadata Agent |
| Cinder API | | Cinder Volume | | OVN-Controller |
| | | Gnocchi httpd | | Ceilometer Compute |
| | | Ceilometer Central | | |
| | | CloudKitty API | | |
+-----------------------+ +-----------------------+ +-----------------------+
|
| [1] | レートを設定したい各々のプロジェクトで、[cloudkitty] ユーザーを [rating] ロールに追加しておきます。 |
|
root@dlp ~(keystone)# openstack project list +----------------------------------+-----------+ | ID | Name | +----------------------------------+-----------+ | 231a529f51394426b07c56f2c5ec580e | admin | | 4dd1e1f6bac441ff9c77002c3ab4c58a | hiroshima | | ee51c09c765e4a4d958c2bcc4dbb5665 | service | +----------------------------------+-----------+root@dlp ~(keystone)# openstack role add --user cloudkitty --project hiroshima rating |
| [2] | [Hashmap] モジュールを有効にします。 |
|
root@dlp ~(keystone)# openstack rating module list +-----------+---------+----------+ | Module | Enabled | Priority | +-----------+---------+----------+ | hashmap | False | 1 | | noop | True | 1 | | pyscripts | False | 1 | +-----------+---------+----------+root@dlp ~(keystone)# openstack rating module enable hashmap +---------+---------+----------+ | Module | Enabled | Priority | +---------+---------+----------+ | hashmap | True | 1 | +---------+---------+----------+root@dlp ~(keystone)# openstack rating module list +-----------+---------+----------+ | Module | Enabled | Priority | +-----------+---------+----------+ | hashmap | True | 1 | | noop | True | 1 | | pyscripts | False | 1 | +-----------+---------+----------+ |
| [3] | Instance Uptime にレートを設定します。 [1] で設定したプロジェクト所属ユーザーが、設定した [flavor_id] でインスタンスを起動した場合、[cloudkitty.conf] で設定した [period] の間隔毎に、設定したレートで課金されます。 |
|
# サービス マッチング ルールを追加 root@dlp ~(keystone)# openstack rating hashmap service create instance +----------+--------------------------------------+ | Name | Service ID | +----------+--------------------------------------+ | instance | 8e038b68-3457-4745-83a0-2688535ccfb7 | +----------+--------------------------------------+ # フィールド マッチング ルールを追加 root@dlp ~(keystone)# openstack rating hashmap field create 8e038b68-3457-4745-83a0-2688535ccfb7 flavor_id +-----------+--------------------------------------+--------------------------------------+ | Name | Field ID | Service ID | +-----------+--------------------------------------+--------------------------------------+ | flavor_id | 379e680e-8a1d-440e-b3a7-bb3136b48c48 | 8e038b68-3457-4745-83a0-2688535ccfb7 | +-----------+--------------------------------------+--------------------------------------+root@dlp ~(keystone)# openstack flavor list +----+----------+------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+----------+------+------+-----------+-------+-----------+ | 0 | m1.small | 2048 | 10 | 0 | 1 | True | +----+----------+------+------+-----------+-------+-----------+ # マッピングを作成 # [flavor_id] が [0] のインスタンスに [0.5] ドルのコストを設定 root@dlp ~(keystone)# openstack rating hashmap mapping create 0.5 \ --field-id 379e680e-8a1d-440e-b3a7-bb3136b48c48 \ --value 0 -t flat +--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+ | Mapping ID | Value | Cost | Type | Field ID | Service ID | Group ID | Project ID | +--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+ | 33582a2a-bc4b-40de-a956-d3ed67c29dab | 0 | 0.5000000000000000000000000000 | flat | 379e680e-8a1d-440e-b3a7-bb3136b48c48 | None | None | None | +--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+ |
| [4] | [1] で CloudKitty と関連付けたプロジェクトに所属する任意の Openstack ユーザーで、インスタンスを操作して、動作確認します。 |
|
ubuntu@dlp ~(keystone)$ openstack server list +--------------------------------------+-------------+---------+-------------------------------------+------------+----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------------+---------+-------------------------------------+------------+----------+ | a456ee32-b105-4c5e-8eae-ddccb48f913e | Ubuntu-2204 | SHUTOFF | private=10.0.0.228, 192.168.100.187 | Ubuntu2204 | m1.small | +--------------------------------------+-------------+---------+-------------------------------------+------------+----------+
ubuntu@dlp ~(keystone)$
openstack server start Ubuntu-2204
# 一定時間経過後 レートが加算される ubuntu@dlp ~(keystone)$ openstack rating summary get +----------------------------------+---------------+------+---------------------+---------------------+ | Tenant ID | Resource Type | Rate | Begin Time | End Time | +----------------------------------+---------------+------+---------------------+---------------------+ | 4dd1e1f6bac441ff9c77002c3ab4c58a | ALL | 0.5 | 2022-10-01T00:00:00 | 2022-11-01T00:00:00 | +----------------------------------+---------------+------+---------------------+---------------------+ # インスタンス稼働中は [period] の間隔毎に 設定したレートがさらに課金される ubuntu@dlp ~(keystone)$ openstack rating summary get +----------------------------------+---------------+------+---------------------+---------------------+ | Tenant ID | Resource Type | Rate | Begin Time | End Time | +----------------------------------+---------------+------+---------------------+---------------------+ | 4dd1e1f6bac441ff9c77002c3ab4c58a | ALL | 1.0 | 2022-10-01T00:00:00 | 2022-11-01T00:00:00 | +----------------------------------+---------------+------+---------------------+---------------------+ # データフレーム表示 ubuntu@dlp ~(keystone)$ openstack rating dataframes get
+---------------------+---------------------+----------------------------------
| Begin | End | Project ID
+---------------------+---------------------+----------------------------------
| 2022-10-18T14:10:00 | 2022-10-18T14:20:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:20:00 | 2022-10-18T14:30:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
+---------------------+---------------------+----------------------------------
+-------------------------------------------------------------------------------
| Resources
+-------------------------------------------------------------------------------
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small',
+-------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
'flavor_id': '0', 'vcpus': '', 'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id':
'flavor_id': '0', 'vcpus': '', 'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id':
-------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
'4dd1e1f6bac441ff9c77002c3ab4c58a', 'user_id': '9345b7f4de21427abf31ad308cf952f8',
'4dd1e1f6bac441ff9c77002c3ab4c58a', 'user_id': '9345b7f4de21427abf31ad308cf952f8',
-----------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------+
|
---------------------------------------------------------------------------------------------+
'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
---------------------------------------------------------------------------------------------+
|
| [5] | Volume Size にレートを設定します。 [1] で設定したプロジェクト所属ユーザーが、Cinder ボリュームを作成した場合、1 GB 毎に、設定したレートで課金されます。 |
|
# サービス マッチング ルールを追加 root@dlp ~(keystone)# openstack rating hashmap service create volume.size +-------------+--------------------------------------+ | Name | Service ID | +-------------+--------------------------------------+ | volume.size | ba16a032-a03f-47cf-92b3-1d8e2100fd79 | +-------------+--------------------------------------+ # マッピングを作成 # 1 GB 毎に [1.5] ドルのコストを設定 root@dlp ~(keystone)# openstack rating hashmap mapping create 1.5 \ -s ba16a032-a03f-47cf-92b3-1d8e2100fd79 \ -t flat +--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+ | Mapping ID | Value | Cost | Type | Field ID | Service ID | Group ID | Project ID | +--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+ | f8fe830f-5514-4bd0-802f-f3e36b2ea685 | None | 1.5000000000000000000000000000 | flat | None | ba16a032-a03f-47cf-92b3-1d8e2100fd79 | None | None | +--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+ # 30 GB 以上のボリュームに対して [1.5] ドルのコスト設定から # 10 % 引きのディスカウントを設定 root@dlp ~(keystone)# openstack rating hashmap threshold create 30 0.90 \ -s ba16a032-a03f-47cf-92b3-1d8e2100fd79 \ -t rate +--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+ | Threshold ID | Level | Cost | Type | Field ID | Service ID | Group ID | Project ID | +--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+ | ab5ba7a9-4f4a-48fe-8e5f-5853bf16755a | 30.00000000 | 0.9000000000000000222044604925 | rate | None | ba16a032-a03f-47cf-92b3-1d8e2100fd79 | None | None | +--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+ |
| [6] | [1] で CloudKitty と関連付けたプロジェクトに所属する任意の Openstack ユーザーで、ボリュームを作成して、動作確認します。 |
|
ubuntu@dlp ~(keystone)$ openstack rating summary get
+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID | Resource Type | Rate | Begin Time | End Time |
+----------------------------------+---------------+------+---------------------+---------------------+
| 4dd1e1f6bac441ff9c77002c3ab4c58a | ALL | 1.5 | 2022-10-01T00:00:00 | 2022-11-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+
ubuntu@dlp ~(keystone)$ openstack volume create --size 10 disk01
ubuntu@dlp ~(keystone)$ openstack volume list +--------------------------------------+--------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+--------+-----------+------+-------------+ | e61f677f-bdd2-4e04-874f-582471263d1c | disk01 | available | 10 | | +--------------------------------------+--------+-----------+------+-------------+ # 一定時間経過後 レートが加算される ubuntu@dlp ~(keystone)$ openstack rating summary get +----------------------------------+---------------+------+---------------------+---------------------+ | Tenant ID | Resource Type | Rate | Begin Time | End Time | +----------------------------------+---------------+------+---------------------+---------------------+ | 4dd1e1f6bac441ff9c77002c3ab4c58a | ALL | 16.5 | 2022-10-01T00:00:00 | 2022-11-01T00:00:00 | +----------------------------------+---------------+------+---------------------+---------------------+ubuntu@dlp ~(keystone)$ openstack rating dataframes get
+---------------------+---------------------+----------------------------------
| Begin | End | Project ID
+---------------------+---------------------+----------------------------------
| 2022-10-18T14:10:00 | 2022-10-18T14:20:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:20:00 | 2022-10-18T14:30:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:30:00 | 2022-10-18T14:40:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:40:00 | 2022-10-18T14:50:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
+---------------------+---------------------+----------------------------------
+--------------------------------------------------------------------------------------------------------------
| Resources
+--------------------------------------------------------------------------------------------------------------
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '15.0', 'service': 'volume.size', 'desc': {'volume_type': '14cf70ec-0fb5-4fec-9cfd-9d719bedc097',
+--------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'e61f677f-bdd2-4e04-874f-582471263d1c', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------+
|
---------------------------------------------------------------------------------------------------------------------------------------------+
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1E+1', 'rate_value': '1.5000'}] |
---------------------------------------------------------------------------------------------------------------------------------------------+
ubuntu@dlp ~(keystone)$ openstack volume create --size 30 disk02 ubuntu@dlp ~(keystone)$ openstack volume list +--------------------------------------+--------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+--------+-----------+------+-------------+ | 48a6eb5d-3e72-414a-9996-70b377fb66b1 | disk02 | available | 30 | | | e61f677f-bdd2-4e04-874f-582471263d1c | disk01 | available | 10 | | +--------------------------------------+--------+-----------+------+-------------+ # 一定時間経過後 レートが加算される # 1.5 x 30 x 0.9 = 40.5 ubuntu@dlp ~(keystone)$ openstack rating summary get +----------------------------------+---------------+------+---------------------+---------------------+ | Tenant ID | Resource Type | Rate | Begin Time | End Time | +----------------------------------+---------------+------+---------------------+---------------------+ | 4dd1e1f6bac441ff9c77002c3ab4c58a | ALL | 57.0 | 2022-10-01T00:00:00 | 2022-11-01T00:00:00 | +----------------------------------+---------------+------+---------------------+---------------------+ubuntu@dlp ~(keystone)$ openstack rating dataframes get
+---------------------+---------------------+----------------------------------
| Begin | End | Project ID
+---------------------+---------------------+----------------------------------
| 2022-10-18T14:10:00 | 2022-10-18T14:20:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:20:00 | 2022-10-18T14:30:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:30:00 | 2022-10-18T14:40:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T14:40:00 | 2022-10-18T14:50:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
| 2022-10-18T15:20:00 | 2022-10-18T15:30:00 | 4dd1e1f6bac441ff9c77002c3ab4c58a
+---------------------+---------------------+----------------------------------
+--------------------------------------------------------------------------------------------------------------
| Resources
+--------------------------------------------------------------------------------------------------------------
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '0.5', 'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '0', 'vcpus': '',
| [{'rating': '15.0', 'service': 'volume.size', 'desc': {'volume_type': '14cf70ec-0fb5-4fec-9cfd-9d719bedc097',
| [{'rating': '40.5', 'service': 'volume.size', 'desc': {'volume_type': '14cf70ec-0fb5-4fec-9cfd-9d719bedc097',
+--------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'a456ee32-b105-4c5e-8eae-ddccb48f913e', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': 'e61f677f-bdd2-4e04-874f-582471263d1c', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
'id': '48a6eb5d-3e72-414a-9996-70b377fb66b1', 'project_id': '4dd1e1f6bac441ff9c77002c3ab4c58a',
------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------+
|
---------------------------------------------------------------------------------------------------------------------------------------------+
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1', 'rate_value': '0.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '1E+1', 'rate_value': '1.5000'}] |
'user_id': '9345b7f4de21427abf31ad308cf952f8', 'tenant_id': '4dd1e1f6bac441ff9c77002c3ab4c58a'}, 'volume': '3E+1', 'rate_value': '1.3500'}] |
---------------------------------------------------------------------------------------------------------------------------------------------+
|
| Sponsored Link |
|
|