目录
一、Placement组件简介
最早在 Newton 版本被引入 openstack/nova repo,以 API 的形式存在,所以也常被称为 Placement API。它参与到 nova-scheduler 选择目标主机的调度流程中,负责跟踪记录 Resource Provider 的 Inventory 和 Usage,并使用不同的 Resource Classes 来划分资源类型,使用不同的 Resource Traits 来标记资源特征。
在2018/11,Placement API 开始了 openstack/nova repo 剥离流程,从 Placement API 蜕变为 OpenStack Placement。虽然现在的 OpenStack Placement 还不算稳定,但毋容置疑,Placement 就是 OpenStack 云平台统一资源管理的未来。
二、环境
一、环境配置
控制节点ct
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168. 86.11/NAT-192.168.109.12 |
操作系统 | Centos 7.6(1810)-最小化安装 |
控制节点c1
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168.86.22 /NAT-192.168.109.22 |
操作系统 | Centos 7.6(1810)-最小化安装 |
控制节点c2
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168.86.33 /NAT-192.168.109.32 |
操作系统 | Centos 7.6(1810)-最小化安装 |
三、部署思路
- 1、创建数据库、授权
- 2、创建openstack用户、授权、管理
- 3、修改placement配置文件/etc/placement/placement.conf
- 4、修改apache配置文件
- 5、测试
四、Placement组件部署
ct
创建数据库实例和数据库用户
mysql -uroot -p
CREATE DATABASE placement;
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
flush privileges;
exit
创建Placement服务用户和API的endpoint
#创建placement用户、授权、创建placement服务
openstack user create --domain default --password PLACEMENT_PASS placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement
#注册API端口到placement的service中;注册的信息会写入到mysql中
openstack endpoint create --region RegionOne placement public http://ct:8778
openstack endpoint create --region RegionOne placement internal http://ct:8778
openstack endpoint create --region RegionOne placement admin http://ct:8778
安装placement服务修改placement配置文件
yum -y install openstack-placement-api
#修改placement配置文件/etc/placement/placement.conf
cp -a /etc/placement/placement.conf{
,.bak}
grep -Ev '^$|#' /etc/placement/placement.conf.bak > /etc/placement/placement.conf
#添加/etc/placement/placement.conf配置(可以使用下面的命令传参)
openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/placement/placement.conf api auth_strategy keystone
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type password
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_name service
openstack-config --set /etc/placement/placement.conf keystone_authtoken username placement
openstack-config --set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS
cat /etc/placement/placement.conf
#导入数据库
su -s /bin/sh -c "placement-manage db sync" placement
修改Apache配置文件
cd /etc/httpd/conf.d
vim 00-placement-api.conf
==末行添加==
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
#重新启动apache
systemctl restart httpd
测试
#curl 测试访问
curl ct:8778
#查看端口占用(netstat、lsof)
netstat -natp | grep 8778
#检查placement状态
placement-status upgrade check