OpenStack踩坑之路(3)(上)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: OpenStack踩坑之路(3)

OpenStack计算服务搭建


nova服务概述


使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的重要组成部分。主要模块是用Python实现的。


OpenStack Compute与OpenStack Identity进行交互以进行身份验证; 用于磁盘和服务器映像的OpenStack映像服务; 和用于用户和管理界面的OpenStack Dashboard。图像访问受到项目和用户的限制; 每个项目的限额是有限的(例如,实例的数量)。OpenStack Compute可以在标准硬件上水平扩展,并下载映像以启动实例。


OpenStack Compute包含以下区域及其组件:


nova-api 服务


接受并响应最终用户计算API调用。该服务支持OpenStack Compute API,Amazon EC2 API以及特殊用户执行管理操作的特殊管理API。它执行一些策略并启动大多数编排活动,例如运行实例。


nova-api-metadata 服务


接受来自实例的元数据请求。nova-api-metadata通常在nova-network 安装多主机模式下运行时使用该服务。有关详细信息,请参阅 计算管理员指南中的元数据服务。


nova-compute 服务


通过管理程序API创建和终止虚拟机实例的工作守护程序。例如:


处理相当复杂。基本上,守护进程接受来自队列的动作并执行一系列系统命令,例如启动KVM实例并更新其在数据库中的状态。


用于XenServer / XCP的XenAPI


KVM或QEMU的libvirt


适用于VMware的VMwareAPI


nova-placement-api 服务


跟踪每个提供商的库存和使用情况。有关详情,请参阅Placement API。


nova-scheduler 服务


从队列中获取虚拟机实例请求,并确定它在哪个计算服务器主机上运行。


nova-conductor 模


调解nova-compute服务和数据库之间的交互。它消除了由nova-compute服务直接访问云数据库的情况 。该nova-conductor模块水平缩放。但是,请勿将其部署到nova-compute运行服务的节点上。有关更多信息,请参阅配置选项中的conductor部分 。


nova-consoleauth 守护进程


为控制台代理提供的用户授权令牌。见 nova-novncproxy和nova-xvpvncproxy。此服务必须运行以使控制台代理正常工作。您可以在群集配置中针对单个nova-consoleauth服务运行任一类型的代理。有关信息,请参阅关于nova-consoleauth。


nova-novncproxy 守护进程


提供通过VNC连接访问正在运行的实例的代理。支持基于浏览器的novnc客户端。


nova-spicehtml5proxy 守护进程


提供通过SPICE连接访问正在运行的实例的代理。支持基于浏览器的HTML5客户端。


nova-xvpvncproxy 守护进程


提供通过VNC连接访问正在运行的实例的代理。支持OpenStack特定的Java客户端。


队列


守护进程之间传递消息的中心集线器。通常用RabbitMQ实现 ,也可以用另一个AMQP消息队列实现,例如ZeroMQ。


SQL数据库


存储云基础架构的大部分构建时间和运行时状态,其中包括:


理论上,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。通用数据库是

用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。


可用的实例类型


正在使用的实例


可用的网络


项目


A.在控制节点安装nova服务


1.创建数据库并授权


进入数据库


[root@controller ~]# mysql -uroot -p  
创建nova_api数据库
MariaDB [(none)]> CREATE DATABASE nova_api; 
创建nova数据库
MariaDB [(none)]> CREATE DATABASE nova;  
创建nova_ce110数据库
MariaDB [(none)]> CREATE DATABASE nova_cell0; 


640.png


对nova_api数据库进行用户授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.*TO 'nova'@'localhost' IDENTIFIED BY 'nova'
MariaDB [mysql]> GRANT ALL PRIVILEGES ON nova_api.*TO 'nova'@'%' IDENTIFIED BY 'nova';
对nova数据库进行用户授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO'nova'@'localhost' IDENTIFIED BY 'nova'; 
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO'nova'@'%' IDENTIFIED BY 'nova';
对nova_ce110数据库进行用户授权
MariaDB [mysql]> GRANT ALL PRIVILEGES ON nova_ce110.*TO 'nova'@'localhost' IDENTIFIED BY 'nova'; 
MariaDB [(none)]> GRANT ALL PRIVILEGES ONnova_ce110.* TO 'nova'@'%' IDENTIFIED BY 'nova';


640.jpg


2.加载环境变量


[root@controller ~]# . admin-openrc


3.创建计算服务凭据


创建nova用户
[root@controller ~]# openstack user create --domaindefault --password-prompt nova   
将admin角色添加到nova用户
[root@controller ~]# openstack role add --projectservice --user nova admin   


640.jpg


创建服务实体


[root@controller ~]# openstack service create --namenova --description "OpenStack Compute" compute 


640.png


4. 创建计算服务API端点


[root@controller ~]# openstack endpoint create --regionRegionOne compute public http://controller:8774/v2.1 
[root@controller ~]# openstack endpoint create --regionRegionOne compute internal http://controller:8774/v2.1
[root@controller ~]# openstack endpoint create --regionRegionOne compute admin http://controller:8774/v2.1


640.jpg


5.创建位置服务用户


[root@controller ~]# openstack user create --domaindefault --password-prompt placement


将位置用户添加到具有管理员角色的服务项目中


[root@controller ~]# openstack role add --projectservice --user placement admin  


640.png


6.在服务目录中创建Placement API条目


[root@controller ~]# openstack service create --nameplacement --description "Placement API" placement


640.png


7.创建Placement API服务端点


[root@controller ~]# openstack endpoint create --regionRegionOne placement public http://controller:8778
[root@controller ~]# openstack endpoint create --regionRegionOne placement internal http://controller:8778
[root@controller ~]# openstack endpoint create --regionRegionOne placement admin http://controller:8778


640.jpg


8.安装并配置nova软件


安装nova相关组件


yum install openstack-nova-api openstack-nova-conductoropenstack-nova-console openstack-nova-novncproxy openstack-nova-scheduleropenstack-nova-placement-api -y  


编辑/etc/nova/nova.conf文件并完成以下操作:


在该[DEFAULT]部分中,仅启用计算API和元数据API:


enable_apis = osapi_compute,metadata


在[api_database]和[database]部分中,配置数据库访问:


[api_database]
connection = mysql+pymysql://nova:nova@controller/nova_api
[database]
connection = mysql+pymysql://nova:nova@controller/nova


在该[DEFAULT]部分中,配置RabbitMQ消息队列访问


transport_url = rabbit://openstack:openstack@controller


在[api]和[keystone_authtoken]部分中,配置身份服务访问


[api]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova


在该[DEFAULT]部分中,将该my_ip选项配置为使用控制器节点的管理接口IP地址:


my_ip = 173.168.16.224


在本[DEFAULT]节中,启用对网络服务的支持:


use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver


在本[vnc]节中,将VNC代理配置为使用控制器节点的管理接口IP地址:


[vnc]
enabled = true
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip


在该[glance]部分中,配置ImageService API的位置:


[glance]
api_servers = http://controller:9292


在该[oslo_concurrency]部分中,配置锁定路径


[oslo_concurrency]
lock_path = /var/lib/nova/tmp


在该[placement]部分中,配置PlacementAPI:


[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = placement


完整配置如下图所示:


640.jpg


由于软件包bug,您必须启用对PlacementAPI的访问权限,方法是将以下配置添加到


/etc/httpd/conf.d/00-nova-placement-api.conf:
<Directory /usr/bin>
   <IfVersion>= 2.4>
      Require allgranted
  </IfVersion>
   <IfVersion< 2.4>
      Orderallow,deny
      Allow fromall
  </IfVersion>
</Directory>


配置如下图所示:


640.png


重启httpd服务


[root@controller ~]#systemctl restart httpd


9.初始化nova数据库


初始化nova_api数据库


[root@controller ~]# su -s /bin/sh -c "nova-manageapi_db sync" nova


640.jpg



注册ce110数据库


[root@controller ~]# su -s /bin/sh -c "nova-managecell_v2 map_cell0" nova


创建ce110的单元格


[root@controller ~]# su -s /bin/sh -c "nova-managecell_v2 create_cell --
name=cell1 --verbose" nova


初始化nova数据库,忽略其中的输出信息


[root@controller ~]# su -s /bin/sh -c "nova-managedb sync" nova


640.jpg


验证nova cell0和cell1是否正确注册


[root@controller ~]# nova-manage cell_v2 list_cells

 

640.jpg


启动计算服务并将其配置为在系统引导时启动


[root@controller ~]# systemctl enable openstack-nova-apiopenstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductoropenstack-nova-novncproxy
[root@controller ~]# systemctl start openstack-nova-apiopenstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductoropenstack-nova-novncproxy
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
Ubuntu Linux KVM
分享一些OpenStack的qcow2格式实例镜像
分享一些OpenStack的qcow2格式实例镜像
13575 0
分享一些OpenStack的qcow2格式实例镜像
|
Linux
【杂七杂八】简单粗暴处理linux下.nsf导致的目录无法删除
【杂七杂八】简单粗暴处理linux下.nsf导致的目录无法删除
538 0
给 Hexo 配置自定义域名进行访问
给 Hexo 配置自定义域名进行访问
215 0
|
安全 Cloud Native Java
龙蜥白皮书精选:机密计算平台技术
龙蜥社区为推动机密计算技术的应用,提供若干机密计算创新项目,目的是降低机密计算技术的使用门槛。
|
存储 Kubernetes Devops
【devops】十、Kubernetes编排工具(上)
【devops】十、Kubernetes编排工具(上)
328 1
|
缓存 Linux 编译器
Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)
该指南介绍了在Linux系统中配置Yum源和安装Python3的步骤。首先,通过`yum install`和`wget`命令更新和备份Yum源,并从阿里云获取CentOS和EPEL的repo文件。接着,清理和更新Yum缓存。然后,下载Python3源代码包,推荐使用阿里云镜像加速。解压后,安装必要的依赖,如gcc。在配置和编译Python3时,可能需要解决缺少C编译器的问题。完成安装后,创建Python3和pip3的软链接,并更新环境变量。最后,验证Python3安装成功,并可选地升级pip和配置pip源以提高包下载速度。
3423 0
|
JSON Kubernetes 负载均衡
第一次看 config dump
前言各位,知道的越多,就越会发现自己的无知。在面对服务网格这样的新兴概念之时,就更是如此了。回想昨日,满头大汗地研究VirtualService和DestinationRule是干什么用的自己仿佛还近在眼前。然而,在搞明白了服务网格的基本概念之后,我却发现自己甚至坠落进更大的疑惑之中了。如果你看过了一些istio的基本知识与概念,你应该知道istio为每个数据面的Pod都注入了一个Sidecar,
第一次看 config dump
|
开发工具 数据安全/隐私保护
The request you have made requires authentication. (HTTP 401)
The request you have made requires authentication. (HTTP 401)
1638 0
The request you have made requires authentication. (HTTP 401)
|
机器学习/深度学习 自然语言处理 分布式计算
零样本文本分类——低资源场景下文本分类的利器(1)
零样本文本分类——低资源场景下文本分类的利器
|
机器学习/深度学习 缓存 自然语言处理
零样本文本分类——低资源场景下文本分类的利器
笔者近期在使用一些开源算法解决低资源场景分类时,发现使用一些在modelscope社区上开源的零样本分类模型可以极大提高分类准确率,因此对零样本文本分类模型进行了梳理,希望对大家有所帮助~
873 0
零样本文本分类——低资源场景下文本分类的利器