当前位置: 代码迷 >> 综合 >> openstack云计算平台 2(计算服务、Networking 服务、命令行方式启动实例)
  详细解决方案

openstack云计算平台 2(计算服务、Networking 服务、命令行方式启动实例)

热度:2   发布时间:2023-12-24 22:58:15.0

目录

  • 一、组件3—计算服务
    • 1.简介
    • 2.安装并配置控制节点
    • 3.安装并配置计算节点
    • 4.验证操作
  • 二、组件4—Networking 服务
    • 1.简介
    • 2.安装并配置控制节点
    • 3.控制节点配置网络选项---公共网络
    • 4.安装并配置计算节点
    • 5.计算节点配置网络选项---公共网络
    • 6.验证操作
  • 三、启动一个实例(命令行方式)
    • 1.提供者网络(公共网络)
    • 2.在公有网络上创建实例

一、组件3—计算服务

1.简介

参考官网:点击

使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由Python实现。OpenStack计算组件请求OpenStack Identity服务进行认证;请求OpenStack Image服务提供磁盘镜像;为OpenStack dashboard提供用户与管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定(例如,每个项目下可以创建多少实例)。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。

OpenStack计算服务由下列组件所构成:

  • nova-api 服务:
    接收和响应来自最终用户的计算API请求。此服务支持OpenStack计算服务API,Amazon EC2 API,以及特殊的管理API用于赋予用户做一些管理的操作。它会强制实施一些规则,发起多数的编排活动,例如运行一个实例。
  • nova-api-metadata 服务:
    接受来自虚拟机发送的元数据请求。一般在安装nova-network服务的多主机模式下使用。
  • nova-compute服务:
    一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。
  • nova-scheduler服务:
    拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
  • nova-conductor模块:
    媒介作用于nova-compute服务与数据库之间。它排除了由nova-compute服务对云数据库的直接访问。nova-conductor模块可以水平扩展。但是,不要将它部署在运行nova-compute服务的主机节点上。
  • nova-cert模块:
    服务器守护进程向Nova Cert服务提供X509证书。用来为euca-bundle-image生成证书。
  • nova-consoleauth 守护进程:
    授权控制台代理所提供的用户令牌。
  • nova-novncproxy 守护进程:
    提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
  • nova-spicehtml5proxy 守护进程:
    提供一个代理,用于访问正在运行的实例,通过 SPICE 协议,支持基于浏览器的 HTML5 客户端。
  • nova-xvpvncproxy 守护进程:提供一个代理,用于访问正在运行的实例,通过VNC协议,支持OpenStack特定的Java客户端。
  • nova-cert 守护进程:
    X509 证书。
  • nova客户端:
    用于用户作为租户管理员或最终用户来提交命令。
  • 队列
    一个在守护进程间传递消息的中央集线器。常见实现有RabbitMQ <http://www.rabbitmq.com/>__ , 以及如Zero MQ <http://www.zeromq.org/>__等AMQP消息队列。
  • SQL数据库:
    存储构建时和运行时的状态,为云基础设施。

2.安装并配置控制节点

接下来将描述如何在控制节点上安装和配置 Compute 服务,即 nova。安装和配置 Compute 服务前,必须创建数据库服务的凭据以及 API endpoints。为了创建数据库,必须完成这些步骤。

用数据库连接客户端以 root 用户连接到数据库服务器;
创建 nova_api 和 nova 数据库;
对数据库进行正确的授权。
请添加图片描述
要创建服务证书,完成这些步骤:
创建 nova 用户:
请添加图片描述
给 nova 用户添加 admin 角色;
创建 nova 服务实体
请添加图片描述
创建 Compute 服务 API 端点(public),这一组件的端口为8774
请添加图片描述
创建 Compute 服务 API 端点(内部)请添加图片描述
创建 Compute 服务 API 端点(admin)
请添加图片描述
安装软件包
请添加图片描述
编辑/etc/nova/nova.conf文件
请添加图片描述
[DEFAULT]部分,只启用计算和元数据API
请添加图片描述
[api_database][database]部分,配置数据库的连接:
请添加图片描述
请添加图片描述
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问
请添加图片描述
指定消息队列的主机、连接的用户名和密码
请添加图片描述
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问(keystone)
请添加图片描述
请添加图片描述
在 [DEFAULT 部分,配置my_ip 来使用控制节点的管理接口的IP 地址(eth0的地址);
使用 Networking 服务
请添加图片描述
[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址
请添加图片描述
在 [glance] 区域,配置镜像服务 API 的位置
请添加图片描述
在 [oslo_concurrency] 部分,配置锁路径
请添加图片描述
同步Compute 数据库,忽略输出中任何不推荐使用的信息。
请添加图片描述
启动 Compute 服务并将其设置为随系统启动
请添加图片描述
请添加图片描述
列出服务
请添加图片描述

3.安装并配置计算节点

rhel7.6虚拟机,至少2G的内存;
双网卡 eth0: 172.25.36.6 访问Horizon使用,eth1:激活但不分配ip,neutron使用,云主机访问外网用;
禁用selinux和firewalld;
虚拟机的cpu需要支持kvm虚拟化,CPU 设为直通模式( host-passthrough 是为了虚拟机里支持 kvm 硬件虚拟化)
请添加图片描述
请添加图片描述
请添加图片描述
修改server6的主机名,作为计算节点
请添加图片描述
进行域名解析
请添加图片描述
网卡配置文件如下
请添加图片描述
激活eth1网卡
请添加图片描述
安装时间同步服务
请添加图片描述
使用Chrony简单配置服务器之间的时间同步
请添加图片描述
同步宿主机的时间
请添加图片描述
启动并自启chrony服务;
查看是否成功
请添加图片描述
配置yum源
请添加图片描述
升级包
请添加图片描述
接下来描述如何在计算节点上安装并配置计算服务
安装软件包(计算节点来启动云主机,不需要连接数据库(为了安全))
请添加图片描述
编辑/etc/nova/nova.conf文件
请添加图片描述
[DEFAULT] 和 [oslo_messaging_rabbit]部分,配置RabbitMQ消息队列的连接
请添加图片描述
请添加图片描述
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问
请添加图片描述
请添加图片描述
在 [DEFAULT] 部分,配置 my_ip 选项;
使用 Networking 服务:
请添加图片描述
[vnc]部分,启用并配置远程控制台访问(监听所有接口);
服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址;
基本的 URL ,可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
请添加图片描述
在 [glance] 区域,配置镜像服务 API 的位置
请添加图片描述
在 [oslo_concurrency] 部分,配置锁路径
请添加图片描述

使用如下命令,查看计算节点是否支持虚拟机的硬件加速:
$ egrep -c ‘(vmx|svm)’ /proc/cpuinfo
如果这个命令返回了 one or greater 的值,那么该计算节点支持硬件加速且不需要额外的配置;
如果这个命令返回了 zero 值,那么该计算节点不支持硬件加速。必须配置 libvirt 来使用 QEMU 去代替 KVM

在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:
请添加图片描述
启动计算服务及其依赖,并将其配置为随系统自动启动
请添加图片描述

4.验证操作

列出服务组件,以验证是否成功启动并注册了每个进程;
前三个组件在控制节点(server5),最后一个组件在计算节点(server6)
请添加图片描述

二、组件4—Networking 服务

1.简介

OpenStack Networking(neutron),允许创建、插入接口设备,这些设备由其他的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。

它包含下列组件:

  • neutron-server:
    接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。
  • OpenStack网络插件和代理:
    插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
    常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
  • 消息队列:
    大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态。

OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。

2.安装并配置控制节点

在配置OpenStack网络(neutron)服务之前,必须为其创建一个数据库,服务凭证和API端点,完成下面的步骤以创建数据库。
用数据库连接客户端以 root 用户连接到数据库服务器;
创建neutron 数据库;
neutron 数据库授予合适的访问权限;
在这里插入图片描述
要创建服务证书,完成这些步骤:
创建neutron用户
请添加图片描述
添加admin 角色到neutron 用户;
创建neutron服务实体
请添加图片描述
创建neutron服务实体(public),这一组件的端口为9696
请添加图片描述
创建neutron服务实体(内部)
请添加图片描述
创建neutron服务实体(admin)
请添加图片描述

3.控制节点配置网络选项—公共网络

我们首先使用公共网络架构来部署网络服务。
安装组件
请添加图片描述
Networking 服务器组件的配置包括数据库、认证机制、消息队列、拓扑变化通知和插件。
编辑/etc/neutron/neutron.conf 文件
请添加图片描述
在 [database] 部分,配置数据库访问
请添加图片描述
[DEFAULT]部分,启用ML2插件并禁用其他插件
请添加图片描述
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接
请添加图片描述
请添加图片描述
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问
请添加图片描述
请添加图片描述
[DEFAULT][nova]部分,配置网络服务来通知计算节点的网络拓扑变化
请添加图片描述
请添加图片描述
在 [oslo_concurrency] 部分,配置锁路径
请添加图片描述
接下来配置 Modular Layer 2 (ML2) 插件,ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施。
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件
请添加图片描述
[ml2]部分,启用flat和VLAN网络
请添加图片描述
禁用私有网络,启用Linuxbridge机制,启用端口安全扩展驱动
请添加图片描述
[ml2_type_flat]部分,配置公共虚拟网络为flat网络
请添加图片描述
[securitygroup]部分,启用 ipset 增加安全组规则的高效性
请添加图片描述
接下来,配置Linuxbridge代理,Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
请添加图片描述
[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来(虚拟主机使用eth1桥接进行通信)
请添加图片描述
[vxlan]部分,禁止VXLAN覆盖网络
请添加图片描述
[securitygroup]部分,启用安全组并配置 Linuxbridge iptables firewall driver:
请添加图片描述
接下来配置DHCP代理(这个组件用来给云主机分配ip);
编辑/etc/neutron/dhcp_agent.ini文件
请添加图片描述
[DEFAULT]部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
请添加图片描述
接下来配置元数据代理,The :term:metadata agent <Metadata agent>负责提供配置信息,例如:访问实例的凭证。
编辑/etc/neutron/metadata_agent.ini文件
请添加图片描述
[DEFAULT] 部分,配置元数据主机以及共享密码
请添加图片描述
为计算节点配置网络服务,编辑/etc/nova/nova.conf文件
请添加图片描述
[neutron]部分,配置访问参数,启用元数据代理并设置密码
请添加图片描述
网络服务初始化脚本需要一个超链接 /etc/neutron/plugin.ini指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini。如果超链接不存在,使用下面的命令创建它;
同步数据库
请添加图片描述
重启计算API 服务;
当系统启动时,启动 Networking 服务并配置它启动(三个代理);
对于两种网络选项。
请添加图片描述

4.安装并配置计算节点

安装组件
请添加图片描述
编辑/etc/neutron/neutron.conf 文件
请添加图片描述
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接
请添加图片描述
请添加图片描述
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问(keystone认证)
请添加图片描述
请添加图片描述
[oslo_concurrency] 部分,配置锁路径
请添加图片描述

5.计算节点配置网络选项—公共网络

配置Linuxbridge代理,Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
请添加图片描述
[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来(计算节点上的eth1接口作为云主机的通信)
请添加图片描述
[vxlan]部分,禁止VXLAN覆盖网络
请添加图片描述
[securitygroup]部分,启用安全组并配置 Linuxbridge iptables firewall driver:
请添加图片描述
接下来为计算节点配置网络服务。
编辑/etc/nova/nova.conf文件
请添加图片描述
[neutron] 部分,配置访问参数
在这里插入图片描述
重启计算服务(由于更改了配置文件);
启动Linuxbridge代理并配置它开机自启动:
请添加图片描述

6.验证操作

列出加载的扩展来验证neutron-server进程是否正常启动
请添加图片描述
使用公共网络,列出代理以验证启动 neutron 代理是否成功(可以看到控制节点启用了三个代理,计算节点启用了一个代理)
请添加图片描述

三、启动一个实例(命令行方式)

1.提供者网络(公共网络)

点击提供者网络
请添加图片描述
创建网络(名为provider);
–shared选项允许所有项目使用虚拟网络
请添加图片描述
在网络上创建一个子网(名为provider)
请添加图片描述
openstack自带的flavor其实就是云主机的类型
请添加图片描述
创建m1.nano规格的主机,默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,推荐创建只需要64 MB的m1.nano规格的主机。若单纯为了测试的目的,应该使用m1.nano规格的主机来加载CirrOS镜像;
注意:id不能冲突,1个虚拟化cpu,64M内存,一个磁盘,名为m1.nano
请添加图片描述

生成一个键值对:大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前,必须添加一个公共密钥到计算服务。

首先导入demo的凭证(切到普通用户操作);
生成和添加秘钥对(将公钥上传到openstack)
请添加图片描述
验证公钥的添加
请添加图片描述

增加安全组规则:默认情况下, default安全组适用于所有实例并且包括拒绝远程访问实例的防火墙规则。对诸如CirrOS这样的Linux镜像,应该至少允许ICMP (ping) 和安全shell(SSH)规则。

添加规则到 default 安全组:首先允许 ICMP (ping)
请添加图片描述
其次允许安全 shell (SSH) 的访问
请添加图片描述

2.在公有网络上创建实例

启动一台实例,必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。
列出可用类型(可以看到m1.nano);
列出可用镜像;
列出可用网络;
列出可用的安全组(default 安全组)
请添加图片描述
由于我们的镜像版本太高,因此云主机启动有问题。接下来将镜像删除,重新下载源镜像
请添加图片描述
选择0.3.4版本镜像
请添加图片描述
使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
请添加图片描述
确认镜像的上传并验证属性
请添加图片描述
列出可用网络
请添加图片描述
列出可用类型
请添加图片描述
启动实例(云主机名为provider-instance)
请添加图片描述
检查实例的状态;
使用虚拟控制台访问实例:获取 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:
请添加图片描述
宿主机进行解析
请添加图片描述
请添加图片描述
此时,网页访问上面的URL,去访问云主机
在这里插入图片描述
使用cirros登陆,密码为cubswin:);
可以看到云主机成功搭建,分到的ip如下
请添加图片描述
但此时不能上网
请添加图片描述
真机打开转发功能
请添加图片描述
此时云主机可以上网(云主机与虚拟机桥接)
请添加图片描述
top查看:top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况
请添加图片描述
计算节点安装如下包(云主机其实就是一个虚拟机)
请添加图片描述
请添加图片描述
可以看到计算节点上的云主机的相应信息(云主机的网络接口为eth1)
请添加图片描述
测试:控制节点远程连接云主机
请添加图片描述