主要内容:
私有云Openstack管理,私有云网络管理,云主机管理
一、Opernstack 概述
OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStackd开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。
1、Openstack架构图解:
整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。(这四个节点也可以安装在一台机器上,单机部署)
- 控制节点:负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等;
- 计算节点:负责虚拟机运行;
- 网络节点:负责对外网络与内网络之间的通信;
- 存储节点:负责对虚拟机的额外存储管理等等;
1.1 控制节点架构:
控制节点包括以下服务
① 管理支持服务
② 基础管理服务
③ 扩展管理服务
1)管理支持服务包含MySQL 与 Qpid 两个服务
-
- MySQL:数据库作为基础/扩展服务产生的数据存放的地方
-
- Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon 五个服务
-
- Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
-
- Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
-
- Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
-
- Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
-
- Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter 五个服务
-
- Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
-
- Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
-
- Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
-
- Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
-
- Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
补充:控制节点一般来说只需要一个网络端口用于通信/管理各个节点
1.2 网络节点架构:
网络节点仅包含Neutron服务
-
- Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等
网络节点包含三个网络端口:
eth0:用于与控制节点进行通信
eth1:用于与除了控制节点之外的计算/存储节点之间的通信
eth2:用于外部的虚拟机与相应网络之间的通信
1.3 计算节点架构:
计算节点包含Nova,Neutron,Telemeter三个服务
1)基础服务
-
- Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
-
- Neutron:提供计算节点与网络节点之间的通信服务
2)扩展服务
-
- Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务
计算节点包含最少两个网络端口
eth0:与控制节点进行通信,受控制节点统一调配
eth1:与网络节点,存储节点进行通信
1.4 存储节点架构:
存储节点包含Cinder,Swift等服务
-
- Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
-
- Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件
存储节点包含最少两个网络接口
eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务
二、Openstack的各个组件作用及关系
主要集成以下组件:
① Horizon - UI服务
② Keystone - 认证服务
③ Nova - 计算服务
④ Glance - 镜像服务
⑤ Neutron - 网络服务(vxlan扩展vlan0-4096局限)
⑥ Swift - 对象存储服务
⑦ Cinder - 块存储服务
⑧ Ceilometer - 监控服务
⑨ Heat - 集群服务
⑩ Trove - 数据库服务
1)Horizon组件(UI服务,WEB控制界面)
Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。
实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等;
访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等;
偏好设定:对虚拟硬件模板可以进行不同偏好设定;
镜像管理:编辑或删除镜像;
用户管理:创建用户、配额及项目用途;
卷管理:创建卷和快照;
对象存储处理:创建、删除容器和对象;
2)Keystone组件(认证服务)
Keystone为所有的OpenStack组件提供认证、访问策略服务、授权的集中身份管理服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。
Keystone采用多种身份认证方式:用户/密码认证,令牌认证(Token)、AWS亚马逊WEB
Keystone还提供以下三种服务:
① 令牌服务:含有授权用户的授权信息;
② 目录服务:含有用户合法操作的可用服务列表;
③ 策略服务:利用Keystone具体指定用户或群组某些访问权限;
3)Nova组件(计算服务)
Nova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。
Nova作为计算组件,在节点上用于管理虚拟机的服务;
Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理;
4)Glance组件(镜像服务)
Glange作为镜像管理组件,提供镜像相关服务,扮演虚拟机镜像注册的角色,允许用户为直接存储拷贝服务器镜像,这些镜像可用于新建虚拟机的模板;
OpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:
① 本地文件系统(默认)
② S3直接存储
③ S3对象存储(作为S3访问的中间渠道)
④ OpenStack对象存储等等。
Glance构件:
① Glance-API:主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增,删除,更新等)。默认绑定端口是9292。
② Glance-Registry:主要负责接收响应镜像元数据命令的Restful请求。分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)。默认绑定的端口是9191。
5)Neutron组件(网络服务)
Neutron作为网络管理组件,一种软件定义网络服务,用于创建网络、子网、路由器、管理浮动IP地址,可以实现虚拟交换机、虚拟路由器,也可用于在项目中创建VPN;
6)Swift组件(对象存储服务)
Swift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。
7)Cinder组件(块存储服务)
Cinde作为存储卷管理组件,为虚拟机管理存储卷的服务。为运行在Nova中的实例提供永久的块存储,可以通过快照进行数据备份,经常应用在实例存储环境中,如数据库文件;
三、登录 Openstack
实验集群架构:
1)启动集群并登录
启动三台虚拟机:opernstack管理节点、nava01计算节点、nava02计算节点;
Openstack管理主机IP:192.168.1.10(用户名admin,密码a)
扩展:命令登录管理,需要认证文件(keystonerc_admin)
载入配置文件使用source
四、项目与用户管理
1、项目管理
项目是由admin角色的用户创建,而"项目",一组隔离的资源和对象,由一组关联的用户进行管理;根据配置的需求,项目对应一个组织、公司或用户个体;项目中可有多个用户,项目中的用户用来管理虚拟资源,项目相关信息保存到数据库中;
默认项目,在缺省情况下,packstack安装的Openstack中有两个独立的项目:
① admin:为admin账户创建的项目;
② services:与安装的各个服务相关联;
扩展:项目管理命令
网页:菜单--->身份管理--->创建项目
2、用户管理
用户在Openstack中用于身份认证;管理员用户admin一般在packstack安装过程中创建,其他用户由管理员用户创建,并指定可以访问的项目,非管理员用户创建后,保存到数据库中;
非管理员用户具有以下权限:
① 启动实例;
② 创建卷和快照;
③ 创建镜像;
④ 分配浮动IP;
⑤ 创建网络和路由器;
⑥ 创建防火墙以及规则、规则策略;
⑦ 查看网络拓扑、项目使用概况等;
扩展:用户管理命令
网页:菜单---> 身份管理---> 用户---> 创建用户
补充:_member_为普通用户角色,角色不同,相应的权限不同
五、云主机类型与镜像管理
1、云主机类型管理
云主机类型就是资源的模板,它定义了一台云主机可以使用的资源,如内存大小、磁盘容量和CPU核心数等;Openstack提供了5个默认的云主机类型,管理员还可自定义云主机类型;
扩展:云主机类型管理命令
创建云主机选项:
Name:云主机类型名称
ID:云主机类型ID,系统自动生成一个UUID
VCPUs:虚拟CPU数目
RAM(MB):内存大小
Root disk(GB):外围磁盘大小
临时磁盘:第二个外围磁盘
Swap磁盘:交换磁盘大小
网页:菜单---> 管理员---> 云主机类型---> 创建云主机类型
2、镜像管理
在红帽Openstack平台中,镜像指的是虚拟磁盘文件(.img),磁盘文件中应已经安装了可启动的操作系统;镜像管理功能由组件Glance服务提供,它形成了创建虚拟机实例最底层的块结构,镜像可以由用户自己制作,也可通过红帽官方站点下载;
常见的镜像格式:
① raw:非结构化磁盘镜像格式
② vhd:VMware、Xen、Microsoft、VirtualBox等均支持的磁盘格式;
③ vmdk:是VMware的虚拟磁盘格式;
④ vdi:VirtualBox虚拟机和QEMU支持磁盘格式;
⑤ iso:光盘数据内容的归档格式;
⑥ qcow2:QEMU支持的磁盘格式,空间自动扩展,并支持COW写时复制;
扩展:镜像管理命令
网页:菜单---> 管理员---> 镜像---> 创建镜像 (导入镜像small.img)
六、云网络管理
云网络环境中,需要公有网络(外网)、私有网络(内网)
1、公有网络管理
外部网络只有管理员有权限设置;
扩展:公有网络管理
网页:菜单---> 管理员---> 网络---> 创建网络 (ID可不填,提交后会自动生成)
补充:Flat网络类型为直连网络;
网页:菜单---> 管理员---> 网络---> 点击tedu_wan---> 创建子网(网段、网关)
子网分配IP地址池:192.168.1.101,192.168.1.103(范围:101~103)
2、私有网络管理
实例被分配到子网中,以实现网络连通性,每个项目可以有一到多个子网;每个项目都能拥有多个私有网络,各个项目的私有网络互相不受干扰;网络间可用VLAN隔离;提供商网络:将实例连接到现有网络,实现虚拟机实例与外部系统共享同一二层网络;
网页:使用创建的普通用户uu登录Openstack
网页:菜单---> 网络---> 网络拓扑(显示已创建的公有网络地址)
网页:菜单--->网络--->创建网络(名称、IP、网关地址)
子网分配IP地址池:10.10.10.101,10.10.10.200(范围:101~200),启用DHCP
补充:公有网络需要取消DHCP,使用自定义分配的IP地址池
网页:菜单---> 网络---> 网络拓扑(显示公有网络、私有网络)
3、设置路由(路由要求连通公有网络和私有网络)
网页:菜单---> 网络---> 新建路由(连接外部网络)
补充:外网的子网在地址池中随机分配给路由器地址,例如:192.168.1.103
网页:菜单---> 网络---> 网络拓扑---> 选择路由器,添加接口(连接内部网络)
补充:设置私网络网络时,配置的网关地址,即路由器连接内部网络的接口IP,例如:10.10.10.254;
七、云主机管理
网页:菜单---> 计算---> 云主机数量---> 创建云主机
选择源:镜像、创建新卷:否、选择Redhat6.img镜像文件(small.img)
云主机类型:选择自定义的云主机类型
网络类型:选择私有网络
测试:控制台登录云主机
使用WEB管理云主机
云主机默认用户:root
云主机默认密码:redhat
云主机nova服务:openstack-nova-compute
云主机route服务:neutron-I3-agent
使用命令连接,web console使用VNC,配置文件在:/etc/nova/nova.conf
(vncserver_proxyclient_address)
补充:云主机默认只能被云平台访问,不能被外部主机访问;
八、浮动IP与安全组
1、浮动IP管理
-
浮动IP一般需要找运营商租用;(弹性公网IP)
-
浮动IP地址用于从外界访问虚拟机实例;
-
浮动IP地址只能从现有浮动IP地址池中分配;
-
虚拟机实例启动后,可以为其关联一个浮动IP地址,虚拟机实例也可以解除IP绑定;
网页:菜单---> 计算---> 访问和安全---> 分配IP给项目(点击两次)
从公有虚拟网络的IP地址池中分配;例如192.168.1.101,192.168.1.102
管理浮动IP的关联,关联浮动IP绑定连接云主机的端口地址10.10.10.105
补充:浮动IP原理类似NAT,给转发外网的端口分配一个外网地址;
2、安全组管理
-
安全组用于控制对虚拟机实例的访问;
-
安全组在高层定义了哪些网络及哪些协议是被授权可以访问虚拟机实例的;
-
所有的项目在创建之后,都有一个默认的default安全组;
-
每个项目都可以定义自己的安全组;
-
项目成员可以编辑默认的规则,也可以添加新的规则;
-
每个规则都有出口和入口两个方向(入站规则、出站规则)
-
默认安全组:default
网页:菜单---> 计算---> 访问和安全---> 创建安全组
创建安全组后,默认有两个出口规则(IPV4、IPV6)
网页:菜单---> 计算---> 访问和安全---> 添加规则(配置入站规则)
或者
补充:云主机加入创建的安全组,才能满足安全组定义规则
网页:菜单---> 计算---> 云主机数量---> 选择云主机,编辑安全组,将default移动回全部安全组里,把定义的mygroup安全组移动到云主机安全组
测试配置:
① Ping测试
bash
[root@localhost ~]# ping 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=63 time=10.7 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=63 time=1.01 ms
...
--- 192.168.1.101 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.589/3.352/10.787/4.296 ms
② SSH连接测试
bash
[root@localhost ~]# ssh 192.168.1.101
root@192.168.1.101's password: //密码redhat
Last login: Fri Jun 25 02:52:14 2021
[root@host-10-10-10-105 ~]#
思维导图:
小结:
本篇章节为**【第五阶段】CLOUD-DAY2**的学习笔记,这篇笔记可以初步了解到 私有云Openstack管理,私有云网络管理,云主机管理,除此之外推荐参考相关学习网址:
Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解。