5.controller部署nova服务

nova 服务是 OpenStack service 计算服务,负责维护和管理云环境的计算资源;
例如:
接收客户端请求需要的计算资源;
确定实例在哪个物理机上创建;
通过虚机化的方式将实例启动运行等工作。

controller节点

在安装和配置 nova 服务之前,必须创建服务对应的数据库用于存储相关数据然后授权nova 用户本地访问和远程访问两种访问权限。
mysql -u root -p123456

CREATE DATABASE nova_api;

CREATE DATABASE nova;

CREATE DATABASE nova_cell0;
nova_api数据库中存放全局信息,如:实例模型、实例组、实例配额
DATABASE存储nova本身元数据信息
nova_cell0数据库的模式与nova一样,主要用途就是当实例调度失败时,实例的信息放nova_cell0数据库中

 

#对以上三个库授权用户本地登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123';
#对以上三个库授权用户远程登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123';

 

 

创建认证账号

切换到 admin 用户,创建 nova 用户(密码: 123
source admin-openrc
openstack user create --domain default --password-prompt nova

查看用户列表

nova用户添加到service项目中拥有admin权限  

openstack role add --project service --user nova admin
创建一个 service 服务(供其他服务访问)名称为 nova ,类型为 compute
openstack service create --name nova --description "OpenStack Compute" compute

 

创建nova服务API端点 

admin :管理员访问的 API 端点
internal :内部服务访问的 API 端点
public : 可以被所有项目访问的 API 端点
#创建public端点
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

#创建internal端点
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

#创建admin端点
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

 

nova服务安装和配置

安装nova软件包:
nova-api:用于响应客户的调度;(客户通过这个去实现虚机添加)
nova-conductor:用于和数据库交互
nova-novncproxy:用于通过vnc方式连接实例
nova-scheduler:用于调度虚拟机实例在那台计算节点运行
yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
修改 nova 配置文件,配置文件: /etc/nova/nova.conf
#查看文件属性
ll /etc/nova/nova.conf

注意属组为nova

#提前备份配置文件
cp /etc/nova/nova.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
#查看文件属性
ll /etc/nova/nova.conf
-rw-r----- 1 root nova 736 12月 12 16:51 /etc/nova/nova.conf
vim /etc/nova/nova.conf

#指定nova支持的api类型、指定连接的rabbitmq的用户密码123、通过neutron获取虚拟机实例IP地址、禁用nova服务的防火墙驱动、否则会与网络服务neutron防火墙驱动冲突
[DEFAULT]
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123@controller:5672/
my_ip = 192.168.0.50
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver
#认证服务为keystone
[api]
auth_strategy = keystone
#访问nova_api数据库使用的用户及密码:123
[api_database]
connection = mysql+pymysql://nova:123@controller/nova_api
#访问nova数据库使用的用户及密码:123
[database]
connection = mysql+pymysql://nova:123@controller/nova
#指定glacne的api,nova启动实例需要找glance要镜像
[glance]
api_servers = http://controller:9292
#配置keystone认证信息,密码123
[keystone_authtoken]
www_authenticate_uri = http://controller:5000/
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 = 123
#启动vnc、指定vnc的监听地址为本机IP、server客户端地址为本机地址,此地址是管理网的地址
[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip
#配置lock锁的临时存放目录,锁的作用是创建虚拟机时,在执行某个操作的时候,需要等此步骤执行完后才能执行下一个步骤,不能并行执行,保证操作是一步一步的执行
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
#nova需要访问placement获取计算节点的资源使用情况,注意这里的placement密码是:123
[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 = 123

 

初始化 nova_api 数据库

su -s /bin/sh -c "nova-manage api_db sync" nova

 注册cell0数据库

一般情况下 nova 需要依赖一个逻辑的数据库和消息队列来进行组件之间的相互交换,这就会给整个系统的扩容和灾难迁移带来困难。而数据库和消息队列正在成为openstack 扩展的瓶颈。尤其是消息队列,伴随着集群规模的扩展,其性能下降尤其明显。通常当集群规模扩展到200个节点,一个消息可能要十几秒后才会响应,集群的整体性能大大下降。针对nova 的这个问题,提出了 nova-cell 的概念,这个概念的提出主要是把计算节点分成更多个更小的单元,每一个单元都有自己的数据库和消息队列
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
初始化 nova 数据库
su -s /bin/sh -c "nova-manage db sync" nova
验证 cell0 cell1 是否注册成功
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

查看数据库中情况

 

mysql -u nova -p123
show databases;
use nova
show tables;
use nova_api
show tables;
use nova_cell0
show tables;

 

启动Nova服务

#设置服务自启动
systemctl enable \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#启动服务
systemctl start \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#查看服务状态
systemctl is-active \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
#提示:每次系统关机重启后,需要再次确认nova服务的状态,如果有相关服务
没有启动,则重启nova服务
systemctl restart \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service

 

在云计算环境中,Controller节点通常是云管理平台如OpenStack、Kubernetes等的核心组件,它们负责管理和协调整个系统的资源。部署Controller节点通常涉及以下几个步骤: 1. **选择平台**:确定你想要使用的云管理平台,比如OpenStack的Nova或Kubernetes的Kube-controller-manager。 2. **硬件准备**:确保你有足够可用的计算资源,包括CPU、内存和存储,因为Controller节点需要处理大量的网络请求和配置任务。 3. **操作系统安装**:在准备好的服务器上安装适合的Linux发行版,例如Ubuntu Server或CentOS。 4. **软件安装**:根据所选平台,安装相应的Controller组件。例如,在OpenStack中,执行`apt-get install openstack-nova-api openstack-nova-conductor`;在Kubernetes中,可能需要安装kubelet、kube-proxy以及kube-controller-manager等。 5. **配置网络**:确保Controller节点能与其他节点(如Worker节点)以及外部网络(如互联网)正常通信。这可能涉及到设置内网IP地址、安全组规则等。 6. **认证和授权**:配置认证机制(如Keystone for OpenStack或Kubernetes的API密钥),确保只有授权的用户可以访问Controller服务。 7. **配置文件调整**:根据你的需求调整配置文件,比如数据库连接信息、安全策略、调度策略等。 8. **启动服务**:启动Controller服务,如`systemctl start openstack-nova-api`或`kubectl start kube-controller-manager`。 9. **验证和监控**:检查服务是否运行正常,使用相应的命令行工具(如openstack命令或kubectl)验证服务状态,并设置监控系统来监控节点性能和健康状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵唯一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值