OpenStack腾讯云部署_Nova部署
6.1 Nava说明
6.1.1 Nava是啥
OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台
类似 Amazon EC2 和 S3 的云基础架构服务
Nava 在 OpenStack 中提供云计算服务
6.1.2 组件说明
- API
- nova-api service
接收并相应终端用户计算API调用;
该服务支持 OpenStack 计算 API,Amazon EC2 和特殊的管理特权 API;
- nova-api-metadata service
接受从实例元数据发来的请求;
该服务通常与 nova-network 服务在安装多主机模式下运行;
- Core
- nova-compute service
一个守护进程,通过虚拟化层 API 接口创建和终止虚拟机实例;
例如:XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware;
- nova-scheduler service
从队列中获取虚拟机请求实例,并确认由哪台计算机运行该虚拟机;
负责虚拟机创建时候的,宿主机负载判断;
- nova-conductor module
协调 nova-compute 服务和 database 之间的交互数据;
避免 nova-compute 服务直接访问云数据库;
不要将该模块部署在 nova-compute 运行的节点上;
- Networking
- nova-network worker daemon
类似于 nova-conpute 服务,接受来自队列的网络任务和操控网络;
比如这只网卡桥接或改变iptables规则;
- nova-consoleauth daemon
在控制台代理提供用户授权令牌;
- nova-novncproxy daemon
提供了一个通过VNC连接来访问运行的虚拟机实例的代理;
支持基于浏览器的 novnc 客户端;
- nova-spicehtml5proxy daemon
提供了一个通过spice连接老访问运行的虚拟机实例的代理;
支持基于浏览器的 HTML5 客户端;
- nova-xvpnvncproxy daemon
提供了一个通过VNC连接来访问运行的虚拟机实例的代理;
支持 OpenStack-Specific Java客户端;
- nova-cert daemon
x509 证书
- Othor
- nova-objectstore daemon
一个 Amazon S3 的接口,用于将 Amazon S3 的镜像注册到 OpenStack euca2ools client 用于兼容 Amazon E2 接口的命令行工具;
- nova client
nova 命令行工具;
- The queue
在进程之间传递消息的队列;
通常使用RabbitMQ;
- SQL database
保存云计算基础设置,建立和运行时的状态信息;
6.2 部署 Nova Controller
在Controller节点部署;
6.2.1 创建 Nova Controller 数据库
mysql -uroot -p
CREATE DATABASE nova_api; CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nova';
FLUSH PRIVILEGES;
6.2.2 创建Nova Controller用户
加载 admin
凭证,来获取管理员命令的执行权限
[root@controller ~]# source admin-openrc
创建 nova
用户
[root@controller ~]# openstack user create --domain default --password-prompt nova
给 nova
用户分配 admin
角色,并加入到 service
项目
[root@controller ~]# openstack role add --project service --user nova admin
创建 nova
服务
[root@controller ~]# openstack service create --name nova --description "OpenStack Compute" compute
创建 nova
API 端点
[root@controller ~]# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
[root@controller ~]# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1
[root@controller ~]# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
配置placement服务
数据库
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
IDENTIFIED BY 'plancement';
使用您选择的位置服务用户创建一个Placement服务用户: Placement
[root@controller ~]# openstack user create --domain default --password placement placement
将Placement用户添加到具有管理角色的服务项目中
[root@controller ~]# openstack role add --project service --user placement admin
在服务目录中创建Placement API条目:
[root@controller ~]# openstack service create --name placement --description "Placement API" placement
创建Placement API服务端点:
[root@controller ~]# openstack endpoint create --region RegionOne placement public http://controller:8778
[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://controller:8778
[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://controller:8778
安装openstack-placement-api
yum -y install openstack-placement-api
编辑/etc/placement/placement.conf
sed -i -e '/^#/d' -e '/^$/d' /etc/placement/placement.conf
[DEFAULT][api]auth_strategy = keystone[keystone_authtoken]auth_url = http://controller:5000/v3memcached_servers = openvip.com:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = placementpassword = 123[placement][placement_database]connection = mysql+pymysql://placement:123@openvip.com/placement
填充placement数据库
su -s /bin/sh -c "placement-manage db sync" placement
验证
placement-status upgrade check
+----------------------------------+| Upgrade Check Results |+----------------------------------+| Check: Missing Root Provider IDs || Result: Success || Details: None |+----------------------------------+| Check: Incomplete Consumers || Result: Success || Details: None |+----------------------------------+
6.2.3 安装配置 Nova Controller
[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler openstack-nova-placement-api -y
# 配置nova
vim /etc/nova/nova.conf
配置 compute 和 metadata APIs
[DEFAULT]
enabled_apis=osapi_compute,metadata
配置数据连接
[api_database]
connection = mysql+pymysql://nova:nova@controller/nova_api
[database]
connection = mysql+pymysql://nova:nova@controller/nova
配置RabbitMQ (如果RabbitMQ和Nova Controller不在同一节点,不能使用RabbitMQ的guest用户)
[DEFAULT]
transport_url = rabbit:// openstack: openstack @controller:5672/
在[DEFAULT]节中,启用对网络服务的支持:
默认情况下,Compute使用内部防火墙驱动程序。由于网络服务包括防火墙驱动程序,所以必须使用nova.virt.firewall.NoopFirewallDriver
防火墙驱动程序
[DEFAULT]
# ...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
配置认证服务访问
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = nova
配置管理IP
[DEFAULT]my_ip = 你的IP
配置vnc代理
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
配置Glance API
[glance]
api_servers = http://controller:9292
配置锁路径
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
配置Placement
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password = placement
因包装缺陷,必须将以下配置添加到Placement API中,从而启用对Placement API的访问/etc/httpd/conf.d/00-nova-placement-api.conf
:
<Directory /usr/bin><IfVersion >= 2.4>Require all granted</IfVersion><IfVersion < 2.4>Order allow,denyAllow from all</IfVersion>
</Directory>
重新启动httpd服务:
# systemctl restart httpd
6.2.4 初始化数据库
# 初始化 nava_api 数据库
忽略此输出中的任何弃用消息。
su -s /bin/sh -c "nova-manage api_db sync" nova
# 注册 cell0 数据库
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
# 创建 cell1 单元
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
fb8e991a-8c1b-4b73-9802-3fb125cf6335
# 初始化 nava 数据库
su -s /bin/sh -c "nova-manage db sync" nova
# 验证 cell0 和 cell1 是否正确注册
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
6.2.5 启动服务
systemctl start openstack-nova-api
systemctl start openstack-nova-scheduler
systemctl start openstack-nova-conductor
systemctl start openstack-nova-novncproxy
systemctl enable openstack-nova-api
systemctl enable openstack-nova-scheduler
systemctl enable openstack-nova-conductor
systemctl enable openstack-nova-novncproxy
查看服务
[root@controller ~]# nova service-list
6.3 部署 Nova Compute
在Compute节点部署
6.3.1 安装配置Nova Compute
yum install -y openstack-nova-compute
# 配置nova
vim /etc/nova/nova.conf
- 编辑
/etc/nova/nova.conf
归档并完成以下操作:
- 在
[DEFAULT]
节中,只启用计算和元数据API:- [DEFAULT]
- # ...
- enabled_apis
= sapi_compute,metadata
- 在
[DEFAULT]
节,配置RabbitMQ
消息队列访问:- [DEFAULT]
- # ...
- transprt_url
= rabbit://penstack:RABBIT_PASS@controller
取代
RABBIT_PASS
使用您为openstack
记帐RabbitMQ
.
- 在
[api]
和[keystone_authtoken]
各节,配置身份服务访问:- [api]
- # ...
- auth_strategy
= keystne
- [keystne_authtoken]
- # ...
- auth_uri
= http://cntroller:
5000- auth_url
= http://cntroller:
35357- memcached_servers
= cntroller:
11211- auth_type
= passwrd
- prject_domain_name
= default
- user_dmain_name
= default
- prject_name
= service
- username
= nva
- passwrd
= NOVA_PASS
取代
NOVA_PASS
使用您为nova
身份服务中的用户。注
类中的任何其他选项注释掉或删除。
[keystone_authtoken]
部分。
- 在
[DEFAULT]
节中,配置my_ip
备选方案:- [DEFAULT]
- # ...
- my_ip
=
cmputeIP取代
MANAGEMENT_INTERFACE_IP_ADDRESS
对于计算节点上的管理网络接口的IP地址,通常为第一个节点的10.0.0.31示例体系结构.
- 在
[DEFAULT]
节中,启用对网络服务的支持:- [DEFAULT]
- # ...
- use_neutrn
=
True- firewall_driver
= nva.virt.firewall.NoopFirewallDriver
注
默认情况下,Compute使用内部防火墙服务。由于网络包括防火墙服务,所以必须使用
nova.virt.firewall.NoopFirewallDriver
防火墙驱动程序。
- 在
[vnc]
节中,启用和配置远程控制台访问:- [vnc]
- # ...
- enabled
=
True- vncserver_listen
=
0.0.
0.0- vncserver_prxyclient_address
=
$my_ip- nvncproxy_base_url
= http://cntroller:
6080/vnc_aut.html
服务器组件侦听所有IP地址,代理组件只侦听计算节点的管理接口IP地址。基URL指示可以使用Web浏览器访问此计算节点上实例的远程控制台的位置。
注
如果要访问远程控制台的web浏览器驻留在无法解析
controller
主机名,您必须替换controller
具有控制器节点的管理接口IP地址。
- 在
[glance]
节中,配置图像服务API的位置:- [glance]
- # ...
- api_servers
= http://cntroller:
9292- 在
[oslo_concurrency]
节中,配置锁路径:- [slo_concurrency]
- # ...
- lck_path
= /var/lib/nva/tmp
- 在
[placement]
节中,配置Placement API:- [placement]
- # ...
- s_region_name
= ReginOne
- prject_domain_name
= Default
- prject_name
= service
- auth_type
= passwrd
- user_dmain_name
= Default
- auth_url
= http://cntroller:
5000/v3
- username
= placement
- passwrd
= PLACEMENT_PASS
取代
PLACEMENT_PASS
使用您为placement
身份服务中的用户。中的任何其他选项注释掉。[placement]
部分。
最后安装
- 确定计算节点是否支持虚拟机的硬件加速:
$ egrep -c
'(vmx|svm)'/proc/cpuinfo
如果此命令返回值为
one or greater
,您的计算节点支持硬件加速,这通常不需要额外的配置。如果此命令返回值为
zero
,您的计算节点不支持硬件加速,您必须配置libvirt
使用QEMU而不是KVM。
- 编辑
[libvirt]
部分/etc/nova/nova.conf
档案如下:
- [libvirt]
- # ...
virt_type = qemu
启动Compute服务,包括其依赖项,并将其配置为在系统启动时自动启动:
# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service
将计算节点添加到单元数据库中
重要
运行以下命令 控制器节点。
- 获取管理凭据以启用只管理的CLI命令,然后确认数据库中有计算主机:
$ . admin-openrc
- $ openstack hypervisor list (
一开始没有执行下面的语句后就有了) 或者 nova service-list
发现计算主机:
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
添加新的计算节点时,必须运行nova-manage cell_v2 discover_hosts在控制器节点上注册这些新的计算节点。或者,您可以在/etc/nova/nova.conf:(自动发现新节点)
[scheduler]
discover_hosts_in_cells_interval = 300
下面是验证:
验证1:列出服务组件以验证每个进程的成功启动和注册
[root@controller ~]# openstack compute service list
验证2:列出Identity服务中的API端点以验证与Identity服务的连接
[root@controller ~]# openstack catalog list
验证3:列出Image服务中的图像以验证与Image服务的连接
[root@controller ~]# openstack image list
验证4:检查单元格和放置API是否正常运行以及其他必要的先决条件是否到位
[root@controller ~]# nova-status upgrade check
验证nova控制端
[root@controller ~]# nova service-list
注:部分内容参考和引用他人文章,如有侵权请联系删除 atlantis_0425@outlook
OpenStack腾讯云部署_Nova部署相关推荐
- 腾讯云服务器配置https 部署安装ssl证书
腾讯云服务器配置https 部署安装ssl证书 配置:CentOS 7 我是使用nginx服务器对Vue项目进行挂载,所以这里主要说明nginx服务器如何配置https服务 如何安装nginx Ngi ...
- django部署iiswin10_基于Windows平台的Django在本地部署和腾讯云服务器上部署的方法教程(一)...
环境: VS2015 IIS python3.6.1 django 1.11.14 打开VS2015,新建一个django项目. 这里注意一点:确保python的安装路径中没有中文,没有空格. 我的安 ...
- 腾讯云https证书部署nginx
域名在腾讯云申请的,直接去 登录 - 腾讯云 我的证书 下操作申请证书, 申请免费证书. 再到 一键https 下,去一键添加一下 cName,若不是腾讯的域名,要手工去加一下域名Cname解析. 之 ...
- 腾讯云开发环境部署系列教程一 【申请免费的腾讯云主机】
最近在研究微信小程序,为了方便测试,决定将数据库访问后端程序发布到云服务器,这也是为了以后的正式环境做准备. 本系统采用 微信小程序+spring boot+mysql+jdk1.8,其中spring ...
- 腾讯云服务器镜像部署 Java Web 环境
操作场景 腾讯云市场中提供了例如包含多种操作系统.热门软件等不同类型的镜像.您可选择这些镜像,在腾讯云云服务器(CVM)上快速部署具有较高稳定性和安全性的软件环境以及个人网站. 本文档介绍在 Linu ...
- 在Linux系统(CentOS 8.2)腾讯云服务器下部署原神云崽机器人(Yunzai-Bot)【保姆入门级】
在决定记录这篇文章之前,我从几天前开始接触云服务器到一步步部署完成,确实是从无到有,一点点理解一点点实践.实践真的非常重要!!!因为肯定比你看书看教程视频强太多太多.这篇文章仅仅只是做一个我部署成功的 ...
- 阿里域名+腾讯云服务器组合部署网站
前段时间,我在阿里云上购买了一个域名.本想着也在阿里云上购买一台入门级服务器先玩玩,但是在看完一系列的产品后,还是放弃了阿里云的服务器.对比几家之后还是选择了腾讯云,接下来,就是踩坑和避坑的经验了. ...
- 阿里云/腾讯云服务器上部署Nginx,域名,SSL证书
你将会从这篇文章中学到: 在服务器上部署Nginx. 域名的购买. 添加域名,让域名解析到你的服务器上. 教你如何添加SSL证书. 在你的服务器上面配置Nginx,实现http和https的访问. 如 ...
- 【云贝学院】腾讯云TDSQL独立部署最佳实践
[云贝学院]云贝学院TDSQL TCP认证课程已上线,学院有不定期公开课 需要的同学可以加老师微信:19941464235 作者:崔鹏 创建四台云主机或者本地四台Centos7.6的VM虚拟机 (四台 ...
- 腾讯云GPU服务器部署Ai绘画Stable Diffusion 小白可用
一.服务器购买 本人本地是个win10的PC 安装了 显示GPU 算力不够,升级配置也需要钱 云服务商的选择上,很普通,大家随意选择腾讯云/阿里云/移动云/华为云-都可以.我是之前用的腾讯云,在腾讯云 ...
最新文章
- python中in_python中的min和in用代码实现
- BroadcastReceiver 启动activity(在activity之外启动一个activity)
- 写一下这两天的生活吧!开学了,也没有多少时间了
- 教你以 4G 的速度克隆 Github 项目!
- linux增量编译不成功,Linux学习笔记-增量编译(Makefile进一步使用)
- Android广播的学习和使用
- jmeter执行python脚本,Jmeter+Python-1问题记录jmeter执行Python3的脚本时报 ValueErro
- hdu4746(莫比乌斯反演)
- 【learning】洲阁筛
- echart vue 图表大小_vue之将echart封装为组件
- 计算机二级C语言考的函数,【帮考网】2012计算机等级二级考试C语言:函数递归...
- C语言深度剖析书籍学习记录 第二章 符号
- word整个表格首行缩进_Word排版对不齐?别忘了这个明星按键
- JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
- 黑马博客——详细步骤(三)项目功能的实现之新增用户
- 【论文笔记】Recover Canonical-View Faces in the Wild with Deep Neural Network
- STM8L052低功耗模式
- 双管道(CreatePipe)与本地cmd.exe进程通信(附源代码及编译好的程序,免费下载)
- 怎样利用闲鱼赚差价?教你在闲鱼卖货赚钱!
- Win10系统电脑声卡驱动正常但没声音?驱动人生解决方案
热门文章
- python实践——时间序列分析建模理论及代码实现
- 同方微电子3S理念护航金融IC卡
- android 7.0原生room,小米5S 安卓9.0 原生体验 LineageOS16.0 ROOT
- echarts中折线图、柱状图之间的转换
- 在命令行窗口中打开win10的显示设置
- 【python】Python语言程序设计/嵩天老师入门课程笔记整理
- 新型Linux恶意软件隐藏在无效日期中、黑客通过微软漏洞监视目标电脑|11月26日全球网络安全热点
- Java设计模式面试专题
- 图片太大怎么压缩变小?
- 美团的战略、战术和能力圈 附下载地址