OpenStack踩坑之路(3)(下)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: OpenStack踩坑之路(3)

B.在计算节点上安装和配置nova服务


1.在计算节点上安装和配置


安装软件包


yum install openstack-nova-compute  


注意:这里出现一个报错缺少一个rpm包,某位大佬丢给我一个rpm包地址得以解决


rpm -ivhhttps://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm


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


在该[DEFAULT]部分中,仅启用计算API和元数据API和配置RabbitMQ消息队列访问::


[DEFAULT]
enabled_apis = osapi_compute,metadata
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选项


my_ip = 173.168.16.225


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


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


在本[vnc]节中,启用并配置远程控制台访问:


[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html


在该[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


2.完成安装


egrep -c '(vmx|svm)' /proc/cpuinfo //检查计算节点是否支持虚拟机的硬件加速如果返回值不为0,说明支持,计算节点不支持硬件加速,您必须配置libvirt为使用QEMU而不是KVM


640.png


按如下方式编辑文件中的[libvirt]部分/etc/nova/nova.conf:


[libvirt]
virt_type = qemu


启动Compute服务(包括其依赖项)并将其配置为在系统引导时自动启动


[root@computer ~]# systemctl enable libvirtd.serviceopenstack-nova-compute.service
[root@computer ~]# systemctl start libvirtd.serviceopenstack-nova-compute.service


这里出现一个小插曲,防火墙开着,服务一直起不来


3.将计算节点添加到单元数据库¶(在控制节点运行)


加载环境变量


[root@controller ~]# . admin-openrc


确认数据库中是否有计算主机


[root@controller ~]# openstack compute service list--service nova-compute


640.png


发现计算主机


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


640.jpg


当您添加新的计算节点时,您必须在控制器节点上运行以注册这些新的计算节点。或者可以编辑/etc/nova/nova.conf在以下位置设置适当的间隔:

 

640.png


4.验证computer服务的操作(控制节点运行)


加载环境变量


[root@controller ~]# . admin-openrc


列出服务组件以验证每个进程的成功启动和注册


[root@controller ~]# openstack compute service list


640.jpg


列出身份服务中的API端点以验证与身份服务的连接


[root@controller ~]# openstack catalog list


640.jpg


列出Image服务中的图像以验证与Image服务的连接性:


[root@controller ~]# openstack image list


640.png


检查cells和placement API是否成功运行:


[root@controller ~]# nova-status upgrade check


640.png


至此,nova服务部分已经安装完成了


OpenStack网络服务搭建


neutron服务概述


OpenStack Networking(neutron)允许您创建由其他OpenStack服务管理的接口设备并将其连接到网络。可以实现插件以适应不同的网络设备和软件,为OpenStack架构和部署提供灵活性。


它包含以下组件:


neutron-server


接受API请求并将其路由到适当的OpenStack Networking插件以便采取行动。


OpenStack Networking插件和代理


插拔端口,创建网络或子网,并提供IP地址。这些插件和代理根据特定云中使用的供应商和技术而有所不同。OpenStack Networking带有用于思科虚拟和物理交换机,NEC OpenFlow产品,Open vSwitch,Linux桥接和VMware NSX产品的插件和代理。


通用代理是L3(第3层),DHCP(动态主机IP寻址)和插件代理。


消息队列


大多数OpenStack Networking安装用于在中子服务器和各种代理之间路由信息。还充当存储特定插件的网络状态的数据库。


OpenStack Networking主要与OpenStack Compute进行交互,为其实例提供网络和连接。


A.安装并配置控制器节点


1.配置neutron数据库


进入mariadb数据库


[root@controller ~]# mysql -uroot -p


创建neutron数据库


MariaDB [(none)]> CREATE DATABASE neutron;


创建neutron的授权用户


MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.*TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.*TO 'neutron'@'%' IDENTIFIED BY 'neutron';


2.创建服务凭据


加载环境变量


[root@controller ~]# . admin-openrc  


创建neutron用户


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

 

640.png


将admin角色添加到neutron用户


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


创建neutron服务实体


[root@controller ~]# openstack service create --nameneutron --description "OpenStack Networking" network


640.png


创建网络服务的api端点


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

640.jpg


3.安装并配置neutron网络,这里有两种网络选项,我选择的是提供商网络


在控制节点安装neutron相关组件


[root@controller ~]# yum install openstack-neutronopenstack-neutron-ml2 openstack-neutron-linuxbridge ebtables


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


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


[database]
connection = mysql+pymysql://neutron:neutron@controller/neutron


在本[DEFAULT]节中,启用ModularLayer 2(ML2)插件并禁用其他插件:


core_plugin = ml2

service_plugins =  //等号后面什么都不加就是禁用其他插件


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


transport_url = rabbit://openstack:openstack@controller


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


[DEFAULT]
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 = neutron
password = neutron


在[DEFAULT]和[nova]部分中,配置网络以通知计算网络拓扑更改:


[DEFAULT]
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[nova]
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = nova


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


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


完整配置如下图所示


640.jpg


ML2插件使用Linux桥接机制为实例构建第2层(桥接和交换)虚拟网络基础结构。


编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:


在本[ml2]节中,启用flat和VLAN网络:


[ml2]
type_drivers = flat,vlan


在本[ml2]节中,禁用自助服务网络:


tenant_network_types =


在本[ml2]节中,启用Linux桥接机制:


mechanism_drivers = linuxbridge


在该[ml2]部分中,启用端口安全扩展驱动程序:


extension_drivers = port_security


在本[ml2_type_flat]节中,将提供者虚拟网络配置为扁平网络:


[ml2_type_flat]
flat_networks = provider


在本[securitygroup]节中,使用ipset来提高安全组规则的效率:


[securitygroup]
enable_ipset = true


完整配置如下图所示:


640.png


Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础架构并处理安全组。


编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:


在本[linux_bridge]节中,将提供者虚拟网络映射到提供者物理网络接口:


[linux_bridge]

physical_interface_mappings = provider:ens33  //将ens33替换成自己本身的网卡接口

在该[vxlan]部分中,禁用VXLAN覆盖网络:


[vxlan]
enable_vxlan = false


在本[securitygroup]节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:


[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver


完整配置如下图所示:


640.png


DHCP代理为虚拟网络提供DHCP服务。


编辑/etc/neutron/dhcp_agent.ini文件并完成以下操作:


在本[DEFAULT]节中,配置Linux网桥接口驱动程序,Dnsmasq DHCP驱动程序,并启用

隔离的元数据,以便提供商网络上的实例可以通过网络访问元数据:


[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true


完整配置如下图所示:


640.png


在这里,我们一共修改了四个配置文件,分别是


640.png


4.配置元数据代理


元数据代理为实例提供配置信息,例如凭据。


编辑/etc/neutron/metadata_agent.ini文件并完成以下操作:


在该[DEFAULT]部分中,配置元数据主机和共享密钥:


[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = neutron


完整配置如下图所示:


640.png


5.配置nova使用neutron服务


编辑/etc/nova/nova.conf文件并执行以下操作:


在该[neutron]部分中,配置访问参数,启用元数据代理并配置秘钥:


[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron
service_metadata_proxy = true
metadata_proxy_shared_secret = neutron


完整配置如下图所示:


640.png


6.完成控制节点的neutron安装


网络服务初始化脚本需要/etc/neutron/plugin.ini指向ML2插件配置文件的符号链

接/etc/neutron/plugins/ml2/ml2_conf.ini。如果此符号链接不存在,请使用以下命令创建它:


[root@controller ~] ln -s /etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini


初始化neutron数据库


[root@controller neutron]# su -s /bin/sh -c"neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file/etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron


这里我同步的时候出现了一个报错,猜想应该是配置问题,结果看了一遍又一遍配置文件没找出来错误,后来谷歌关键字得知我把[database]部分的


”connection = mysql+pymysql://neutron:neutron@controller/neutron”写到了[DEFAULT]部分
[root@controller neutron]# mysql -uneutron -pneutron -e"use neutron; show tables;"  //查看同步的数据库


640.jpg


重启计算API服务


[root@controller neutron]# systemctl restart openstack-nova-api.service


启动网络服务并将其配置为系统启动时启动


[root@controller ]# systemctl enable neutron-server.service neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service neutron-metadata-agent.service
[root@controller neutron]# systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.serviceneutron-metadata-agent.service


B.在计算节点安装配置neutron


1.安装相关组件


[root@computer ~]# yum installopenstack-neutron-linuxbridge ebtables ipset


2.配置通用组件


网络通用组件配置包括认证机制,消息队列和插件。


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


在该[database]部分中,注释掉任何connection选项,因为计算节点不直接访问数据库。


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


[DEFAULT]
transport_url = rabbit://openstack:openstack@controller


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


[DEFAULT]
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 = neutron
password = neutron


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


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


完整配置如下图所示:


640.png


3.配置网络选项


这里与控制器节点选择的相同网络选项,都是提供商网络


Linux网桥代理为实例构建第2层(桥接和交换)虚拟网络基础架构并处理安全组。


编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:


在本[linux_bridge]节中,将提供者虚拟网络映射到提供者物理网络接口:


[linux_bridge]


physical_interface_mappings = provider:ens33 //将ens33替换为自己的网卡接口


在该[vxlan]部分中,禁用VXLAN覆盖网络:


[vxlan]
enable_vxlan = false


在本[securitygroup]节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:


[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver


完整配置如下图所示:


640.png


4.配置计算服务已使用网络服务


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


在该[neutron]部分中,配置访问参数:

[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron


完整配置如下图所示:


640.png


5.完成安装


重新启动计算服务:


[root@computer ~]# systemctl restart openstack-nova-compute.service


启动Linux桥代理并将其配置为在系统引导时启动:


[root@computer ~]# systemctl enable neutron-linuxbridge-agent.service
[root@computer ~]# systemctl start neutron-linuxbridge-agent.service


6.验证操作


加载环境变量


[root@controller ~]# . admin-openrc


列出加载的扩展以验证neutron-server过程的成功启动 :


[root@controller ~]# openstack extension list --network


640.jpg


验证 neutron agent成功


[root@controller ~]# openstack network agent list


640.jpg


至此,neutron服务安装完成

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
技术经验分享:GMU简单使用一
技术经验分享:GMU简单使用一
88 0
阿里巴巴Java开发手册--各个版本汇总
阿里巴巴Java开发手册--各个版本汇总
1340 0
阿里巴巴Java开发手册--各个版本汇总
|
Java 测试技术 开发者
阿里正式发布《Java开发手册》终极版!
本文讲的是阿里正式发布《Java开发手册》终极版!,别人都说我们是码农,但我们知道,自己是个艺术家。也许我们不过多在意自己的外表和穿着,但我们不羁的外表下,骨子里追求着代码的美、质量的美。而代码规约其实就是一个对美的定义。
76330 0
|
11月前
|
存储 cobar NoSQL
阿里进阶专用:Mycat权威指南,不怕从零开始,只怕从未启程
如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈发娴熟加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。
|
存储 Kubernetes 负载均衡
k8s学习之路【01.安装】
k8s学习之路【01.安装】
|
人工智能 Kubernetes Cloud Native
阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了
容器技术这样一个新生事物,完全重塑了整个云计算市场的形态。在这个市场里,不仅有 Google、Microsoft 等技术巨擘们厮杀至今,更有无数的国内外创业公司前仆后继。而在国内,甚至连以前对开源基础设施领域涉足不多的 BAT、蚂蚁、滴滴这样的巨头们,也都从 AI、云计算、微服务、基础设施等维度多管齐下,争相把容器和 Kubernetes 项目树立为战略重心之一。
|
IDE 程序员 Linux
程序员之路:Linux安装_
程序员之路:Linux安装_
103 0
程序员之路:Linux安装_
|
消息中间件 SQL 移动开发
|
存储 Kubernetes Ubuntu
2021-Java后端工程师必会知识点-(Docker)(下)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
160 0
|
运维 Dubbo Java
2021-Java后端工程师必会知识点-(Docker)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
170 0
下一篇
无影云桌面