OpenStack Yoga版安装笔记(九)placement安装

1、官方文档

OpenStack Installation Guideicon-default.png?t=N7T8https://docs.openstack.org/install-guide/

本次安装是在Ubuntu 22.04上进行,基本按照OpenStack Installation Guide顺序执行,主要内容包括:

  • 环境安装 (已完成)
  • OpenStack服务安装
    • keyston安装(已完成)
    • glance安装 (已完成)
    • placement安装(本篇文档安装)  ◄──
  • 启动一个实例

参考OpenStack Yoga版最小化部署(Minimal deployment for Yoga),顺序安装必须的核心服务,本次安装placement服务

2、Placement概述

OpenStack项目中的Placement API服务的发展历程和功能:

  1. Placement API服务的引入:该服务首次出现在OpenStack的Newton版本(14.0.0)中,当时是作为nova(计算)组件的一部分。

  2. 从nova到placement的迁移:在OpenStack的Stein版本(19.0.0)中,Placement API服务被分离出来,成为了一个独立的repository(代码库)。

  3. REST API和数据模型:Placement API服务有RESTful API栈(表现层状态转移应用编程接口)和数据模型,用来跟踪资源提供者(resource provider)不同类型资源的库存和使用情况。

  4. 资源提供者:资源提供者可以是计算节点(compute node)、共享存储池(shared storage pool)或IP地址池(IP allocation pool)等。

  5. 资源跟踪:Placement服务追踪每个资源提供者的资源库存和使用情况。例如,一个实例(instance)在计算节点上创建时,可能会消耗该计算节点RAM和CPU资源,使用来自外部共享存储池的磁盘资源,以及来自外部IP资源池的IP地址,其中计算节点、存储池、IP资源池都是资源提供者角色。

简而言之,Placement API服务是OpenStack中用于管理和跟踪资源分配和使用情况的关键组件,它允许OpenStack更有效地管理和分配其资源。

3、Install and configure Placement for Ubuntu

  • 注意安装版本为:openstack-placement 7.0.1.dev3
  • 将controller node虚机转到“keystone+glance+wireshark"快照:

3.1 Prerequisites

在安装和配置placement service之前,需要先创建数据库、服务凭证(用户名/密码)、服务API端点。

1、Create the placement database:

root@controller:~# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE placement;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
    ->   IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
    ->   IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 
MariaDB [(none)]> quit
Bye
root@controller:~#

 2、Configure User and Endpoints

ubcode@osclient:~$ . admin-openrc 
ubcode@osclient ~(admin/amdin)$ openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 86d5d1a3d15a441bb48a971007303a67 |
| name                | placement                        |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
ubcode@osclient ~(admin/amdin)$ openstack role add --project service --user placement admin
ubcode@osclient ~(admin/amdin)$ openstack service create --name placement \
>   --description "Placement API" placement
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Placement API                    |
| enabled     | True                             |
| id          | 639145725f804482a50d4740b0c79c43 |
| name        | placement                        |
| type        | placement                        |
+-------------+----------------------------------+
ubcode@osclient ~(admin/amdin)$ openstack endpoint create --region RegionOne \
>   placement public http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 7c147a0d2214463fb2ee6d30fb00330e |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 639145725f804482a50d4740b0c79c43 |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+
ubcode@osclient ~(admin/amdin)$ openstack endpoint create --region RegionOne \
>   placement internal http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 27cea9990eff40c78b9b91e5d551ba7d |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 639145725f804482a50d4740b0c79c43 |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+
ubcode@osclient ~(admin/amdin)$ openstack endpoint create --region RegionOne \
>   placement admin http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 2b53d35f30654f46a41c9bed22c9f67e |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 639145725f804482a50d4740b0c79c43 |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+
ubcode@osclient ~(admin/amdin)$ 

3.2 Install and configure components

1、安装软件包

root@controller:~# apt install placement-api

2、Edit the /etc/placement/placement.conf file

root@controller:~# vi /etc/placement/placement.conf 
...
[placement_database]
# connection = sqlite:var/lib/placement/placement.sqlite
connection = mysql+pymysql://placement:openstack@controller/placement
...
[api]
#
# Options under this group are used to define Placement API.

#
# From placement.conf
#

#
# This determines the strategy to use for authentication: keystone or noauth2.
# 'noauth2' is designed for testing only, as it does no actual credential
# checking. 'noauth2' provides administrative credentials only if 'admin' is
# specified as the username.
#  (string value)
# Possible values:
# keystone - <No description provided>
# noauth2 - <No description provided>
auth_strategy = keystone
...
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = openstack
...

3、Populate the placement database

root@controller:~# su -s /bin/sh -c "placement-manage db sync" placement
root@controller:~# 

3.3 Finalize installation

root@controller:~# service apache2 restart
root@controller:~#

4、Verify Installation

root@controller ~(admin/amdin)# placement-status upgrade check
+-------------------------------------------+
| Upgrade Check Results                     |
+-------------------------------------------+
| Check: Missing Root Provider IDs          |
| Result: Success                           |
| Details: None                             |
+-------------------------------------------+
| Check: Incomplete Consumers               |
| Result: Success                           |
| Details: None                             |
+-------------------------------------------+
| Check: Policy File JSON to YAML Migration |
| Result: Success                           |
| Details: None                             |
+-------------------------------------------+
root@controller ~(admin/amdin)# 
root@controller ~(admin/amdin)# openstack service list
+----------------------------------+-----------+-----------+
| ID                               | Name      | Type      |
+----------------------------------+-----------+-----------+
| 639145725f804482a50d4740b0c79c43 | placement | placement |
| 75fe01049ec648b69e48d200971bf601 | keystone  | identity  |
| d6a3dadf92e542289c5ebd37e3553cdd | glance    | image     |
+----------------------------------+-----------+-----------+
root@controller ~(admin/amdin)# 

root@controller ~(admin/amdin)# pip3 install osc-placement
bash: pip3: command not found
root@controller ~(admin/amdin)# apt-get update
root@controller ~(admin/amdin)# apt install python3-pip
root@controller ~(admin/amdin)# pip3 install osc-placement
root@controller ~(admin/amdin)# openstack --os-placement-api-version 1.2 resource class list --sort-column name
+----------------------------------------+
| name                                   |
+----------------------------------------+
| DISK_GB                                |
| FPGA                                   |
| IPV4_ADDRESS                           |
| MEMORY_MB                              |
| MEM_ENCRYPTION_CONTEXT                 |
| NET_BW_EGR_KILOBIT_PER_SEC             |
| NET_BW_IGR_KILOBIT_PER_SEC             |
| NET_PACKET_RATE_EGR_KILOPACKET_PER_SEC |
| NET_PACKET_RATE_IGR_KILOPACKET_PER_SEC |
| NET_PACKET_RATE_KILOPACKET_PER_SEC     |
| NUMA_CORE                              |
| NUMA_MEMORY_MB                         |
| NUMA_SOCKET                            |
| NUMA_THREAD                            |
| PCI_DEVICE                             |
| PCPU                                   |
| PGPU                                   |
| SRIOV_NET_VF                           |
| VCPU                                   |
| VGPU                                   |
| VGPU_DISPLAY_HEAD                      |
+----------------------------------------+
root@controller ~(admin/amdin)# 
root@controller ~(admin/amdin)# openstack --os-placement-api-version 1.6 trait list --sort-column name
+---------------------------------------+
| name                                  |
+---------------------------------------+
| COMPUTE_ACCELERATORS                  |
| COMPUTE_ARCH_AARCH64                  |
| COMPUTE_ARCH_MIPSEL                   |
...

命令解释:

1、openstack --os-placement-api-version 1.2 resource class list --sort-column name

这条命令是针对OpenStack的Placement API的,用于列出资源类别。下面是对命令各部分的解释:

  • openstack: 这是OpenStack命令行客户端的入口点,用于执行与OpenStack相关的各种操作。

  • --os-placement-api-version 1.2: 这个选项指定了使用Placement API的版本。在这个例子中,指定的版本是1.2。不同的API版本可能支持不同的功能和参数。

  • resource class list: 这是命令的具体操作,用于列出所有可用的资源类别。资源类别是资源类型的抽象,例如,VCPUMEMORY_MBDISK_GB等,它们代表了可以被计算节点、存储或网络使用的不同类型的资源。

  • --sort-column name: 这个选项指定了输出结果按照哪一列进行排序。在这个例子中,name列将被用作排序依据,意味着资源类别将按照它们的名称进行排序。

当你执行这个命令时,它会连接到Placement API,检索所有资源类别的信息,并按照名称排序后显示出来。这对于管理和理解OpenStack环境中可用的资源类型非常有用,尤其是在进行资源分配和调度时。

2、 openstack --os-placement-api-version 1.6 trait list --sort-column name

这条命令是使用OpenStack命令行接口(CLI)来列出Placement API中的所有资源属性(trait)。下面是对命令各部分的详细解释:

  • openstack: 这是OpenStack CLI的命令前缀,用于执行与OpenStack相关的命令。

  • --os-placement-api-version 1.6: 这个选项指定了要使用的Placement API的版本。在这个例子中,使用的是版本1.6。不同的API版本可能会支持不同的特性和参数。

  • trait list: 这是命令的具体操作,用于列出Placement API中的所有资源属性。资源属性是描述资源提供者(如计算节点、存储池等)特定特性的标签,例如,支持的硬件特性或配置选项。

  • --sort-column name: 这个选项指示CLI按照资源属性的名称进行排序。这使得输出结果更加有序,便于用户查看和管理。

当你执行这个命令时,CLI会向Placement API发送请求,获取所有资源属性的列表,并按照属性名称进行排序,然后展示这些属性。这对于了解和配置OpenStack环境中的资源特性非常有用,尤其是在需要对资源进行精细控制和调度时。

 5、关闭虚机,拍摄快照

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值