1.基于互联网的相关服务的增加,使用和交付模式
2.这种模式提供可用的,便捷的,按需的网络访问,进入可配置的计算资源共享池
3.这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互
4.同常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源
IaaS:基础设施即服务(提供给消费者的服务是对所以计算基础设施的利用,包括处理CPU,内存,存储,网络和其他基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序),IaaS通常分为三种用法:公有云,私有云和混合云.
PaaS:平台即服务(以服务器平台或者开发环境作为服务进行提供就成为了PaaS,PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发,优化等服务),简单的说,PaaS平台是指云环境中的应用基础设施服务,也可以说是中间件即服务.
SaaS:软件即服务,是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商订购所需的应用软件服务.用户不用再购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动,不用对软件进行维护,提供商会全权管理和维护软件,同时也提供软件的离线操作和本地数据存储
Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目,也是一套IaaS解决方案,一个开源的云计算管理平台,以Apache许可证为授权
现在广为接受的云计算是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入少量的管理工作,或与服务供应商进行很少的交互
国外:亚马逊AWS、微软Azure、IBM SCE+、…
国内:华为云、阿里云、百度云、腾讯云、…
1.要考虑服务商的知名度、靠谱度
2.以个人/企业实际需求为本
-比如云主机、数据库、CDN、安全等,选择性价比最优的\
Horizon:用于管理Openstack各种服务的、基于web的管理接口,通过图形界面实现创建用户、管理网络、启动实例等操作(本质是apache,加了个动态解析脚本,解析python脚本,是python开发的,只装在管理主机)
Keystone:为其他服务提供认证和授权的集中身份管理服务,也提供了集中的目录服务,支持多种身份认证模式,如密码认证、令牌认证、以及AWS(亚马逊Web服务)登录,为用户和其他服务提供了SSO认证服务(只装在管理主机)
Neutron:一种软件定义网络服务,用于创建网络、子网、路由器、管理浮动IP地址,可以实现虚拟交换机、虚拟路由器,也可用于在项目中创建VPN(网络服务组件,最复杂的,所有主机安装,提供网络服务,管理主机和节点机器都需要)
Cinder:为虚拟机管理存储卷的服务,为运行在Nova中的实例提供永久的块存储,可以通过快照进行数据备份,经常应用在实例存储环境中,如数据库文件(卷存储,就像块设备,可做数据迁移)
Glance:扮演虚拟机镜像注册的角色,允许用户为直接存储拷贝服务器镜像,这些镜像可以用于新建虚拟机的模板(类似yum服务,如同yum镜像盘,给其他机器提供后端盘镜像,管理主机装)
Swift:对象存储(提供不同机器的不同虚拟机共享数据,都需要装)
Nova:在节点上用于管理虚拟机的服务,Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理,Nova被设计成在标准硬件上能够进行水平扩展,启动实例时,如果有则需要下载镜像(代理和管家,做为被管理端,用于接受管理端指令,下发管理虚拟机)
DNS服务器不能与openstack管理主机装同一台机器上
最少安装环境(3台机器,Openstack管理机,nova01,nova02做nova计算节点集群)
openstack管理主机配置(2CPU,6G内存,50G硬盘,静态IP:192.168.1.10)
nova01,nova02计算节点*2(2CPU,4.5G内存,100G硬盘,静态IP:192.168.1.11/12)
静态ip配置 cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
# Generated by dracut initrd
DEVICE=“eth0”
ONBOOT=“yes”
NM_CONTROLLED=“no”
TYPE=“Ethernet”
BOOTPROTO=“static”
PERSISTENT_DHCLIENT=“yes”
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
CentOS7-1804.iso 系统软件
RHTL7-extras.iso 提供Python依赖软件包
RHEL7OSP-10.iso 光盘用于众多目录,每个目录都是一个软件仓库,我们配置其中2个软件仓库
-openstack主要软件仓库 rhel-7-server-openstack-10-rpms
-packstack软件仓库 rhel-7-server-openstack-10-devtools-rpms(提供的是queens组件版本包)
利用系统共享,挂载到共享目录下,由nova01,nova02 yum布置访问来下载软件包
$ mount RHEL7-extras.iso /var/ftp/RHEL7-extras/
mount: /dev/loop1 写保护,将以只读方式挂载
mount RHEL7OSP-10.iso /var/ftp/RHEL7OSP-10/
mount: /dev/loop2 写保护,将以只读方式挂载
[root@openstack ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl=“ftp://192.168.1.254/centos-1804”
enabled=1
gpgcheck=1
[RHEL7-extras]
name=RHEL7-extras
baseurl=“ftp://192.168.1.254/RHEL7-extras”
enabled=1
gpgcheck=0
[RHEL7OSP-package]
name=RHEL7OSP-package
baseurl=“ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-rpms”
enabled=1
gpgcheck=0
[RHEL7OSP-devtools]
name=RHEL7OSP-devtools
baseurl=“ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-devtools-rpms”
enabled=1
gpgcheck=0
利用scp将布置好的yum源传到其他节点机器
效果为: [root@openstack ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
RHEL7-extras RHEL7-extras 76
RHEL7OSP-devtools RHEL7OSP-devtools 3
RHEL7OSP-package RHEL7OSP-package 680
local_repo CentOS-7 - Base 9,911
repolist: 10,670
系统环境准备:
-openstack安装时候需要使用外部DNS来解析域名
vim /etc/resolv.conf
加nameserver dns地址 注:去掉search开头的所有行,防域名解析出问题fqdn,完全主机名,防止寻找search域
-将openstack.tedu.cn域名对应的IP解析到我们安装的openstack服务器
vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
注:DNS服务器不能与openstack安装在同一台主机上
时间服务:nova服务器之间的时间必须保持一致
编辑配置文件 /etc/chrony.conf
-server 192.168.1.254 iburst
-重启服务 systemctl restart chronyd
测试服务是否正常:
]#chronyc sources -v #出现*代表NTP时间可用
1.安装额外软件包:
安装openstack期间,有些软件包所依赖的软件包,并没有在安装过程中安装,这些软件包需要提前安装
-qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
]# yum install -y qemu-kvm(虚拟化平台) libvirt-client(客户端) libvirt-daemon(后台进程) libvirt-daemon-driver-qemu(驱动) python-setuptools(python的工具包,主机安装所有)
2.是否卸载Firewalld(防火墙会被openstack接管,冲突)和NetworkManager(openstack会分配网络,配置物理网卡,会与Network冲突,所有卸载)
[root@openstack ~]# rpm -qa | grep NetworkManager*
[root@openstack ~]# rpm -qa | grep firewalld*
3.检查配置主机网络参数(需要静态ip地址static,不能dhcp分配)
4.验证主机名是否互通(openstack通过主机名寻找对方)
5.检查配置主机yum源
6.检查时间同步是否可用
7.检查/etc/resolve.conf不能有search开头的行
nova计算节点systemctl enable libvirtd开机自启动,提供虚拟化平台
vbr虚拟机网桥,提供虚拟机是否能上网,上网通过真机转发
qume -e与无的区别,是否存在后端盘
安装openstack需要使用packstack,首先安装openstack-packstack,packstack提供远程安装,管理主机安装除nova的所有组件,nova计算节点安装nova组件,还有虚拟化平台
[root@openstack ~]# yum install -y openstack-packstack #只在管理主机上安装
使用packstack创建通用应答文件
[root@openstack ~]# packstack --gen-answer-file answer.ini #answer.ini与answer.txt是一样的,只是用vim打开answer.ini文件有颜色
Packstack changed given value to required value /root/.ssh/id_rsa.pub
修改应答文件
[root@openstack ~]# vim answer.ini
42 CONFIG_SWIFT_INSTALL=n
45 CONFIG_CEILOMETER_INSTALL=n //计费相关模块
49 CONFIG_AODH_INSTALL=n //计费相关模块
53 CONFIG_GNOCCHI_INSTALL=n //计费相关模块
75 CONFIG_NTP_SERVERS=192.168.1.254 //时间服务器的地址
98 CONFIG_COMPUTE_HOSTS=192.168.1.11 //nova组件装在那个地址主机上
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //netueen组件装在哪台主机上,都需要装
333 CONFIG_KEYSTONE_ADMIN_PW=a //修改管理员的密码,330行,管理员名称
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //连接网络类型,支持网络的协议种类,驱动类型
876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
//设置组播地址,最后一个随意不能为0和255,其他固定
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //虚拟交换机名称,物理网桥的名称
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接,外网出口的网卡,指定连接外网的网卡
1179 CONFIG_PROVISION_DEMO=n //DEMO是否测试,演示使用组件,需关闭
一键部署Openstack
[root@openstack ~]# packstack --answer-file=answer.ini
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20190423-170603-b43g_i/openstack-setup.log
Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
root@192.168.1.11's password:
root@192.168.1.10's password:
Setting up ssh keys
**** Installation completed successfully ****** //出现这个为成功
如果前期环境准备无误,只要耐心等待安装结束即可,根据主机配置不同,安装过程需要20分钟左右或更久,如果出现错误,根据屏幕上的日志文件进行排错
1.查看外部OVS网桥
(1)查看br-ex网桥配置(br-ex为OVS网桥设备)(ovs将eth0的网卡枪来做了br-ex端口,配置openstack自动生成)
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.10"
PREFIX=24
GATEWAY=192.168.1.254
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
(2)查看eth0网卡配置(该网卡为OVS网桥的接口)
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
2.验证OVS配置
[root@openstack ~]# ovs-vsctl show
Bridge br-ex
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port br-ex
Interface br-ex
type: internal
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
Port "eth0"
Interface "eth0"
ovs_version: "2.5.0"
概述:Horizon是一个用以管理、控制Openstack服务的Web控制面板,也称之为Dashboard仪表盘,可以管理实例、镜像、创建密钥对,对实例添加卷、操作Swift容器等.除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例,基于Python的django web框架进行开发
实例管理;创建、终止实例,查看终端日志,VNC连接,添加卷等
访问与安全管理:创建安全群组,;管理密钥对,设置浮动IP等
偏好设定:对虚拟硬件模板可以进行不同偏好设定
镜像管理:编辑或删除镜像
用户管理:创建用户等
卷管理:创建卷和快照
对象存储处理:创建、删除容器和对象
Horizon BUG处理:
安装虽然没有报错,但默认无法打开Horizon,这是一个软件的配置BUG
-/etc/httpd/conf.d/15-horizon_vhost.conf
-WSGIApplicationGroup %{GLOBAL} #添加这行
[root@openstack conf.d]# vi 15-horizon_vhost.conf
35 WSGIProcessGroup apache
36 WSGIApplicationGroup %{GLOBAL} //添加这一行
[root@openstack conf.d]# apachectl graceful //重新载入配置文件
3)查看用户名和密码
[root@openstack conf.d]# cd
[root@openstack ~]# ls
answer.ini keystonerc_admin //keystonerc_admin生成的文件,里面有用户名和密码
[root@openstack ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin //用户名
export OS_PASSWORD=a //密码
export OS_AUTH_URL=http://192.168.1.10:5000/v2.0
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
访问Horizon, 对管理主机Openstack发起访问http://192.168.1.10
用户名密码为配置文件自定义用户名密码
创建名为myprojact的项目
[root@openstack ~]# source ~/keystonerc_admin //初始化环境变量
[root@openstack ~(keystone_admin)]# openstack project create myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | True |
| id |f73949e2701346328faf5c1272414cd0|
| name | myproject |
+-------------+----------------------------------+
查看项目信息
[root@openstack ~(keystone_admin)]# openstack project list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| 3fd5bffd734543d39cf742492273a47f | services |
| 7f0b43274a9f4e149357fc8393ff2c68 | admin |
| f73949e2701346328faf5c1272414cd0 | myproject |
+----------------------------------+-----------+
更新vcpu配额为30
[root@openstack ~(keystone_admin)]# nova quota-update --cores 30 myproject
删除myproject
[root@openstack ~(keystone_admin)]# openstack project delete myproject
命令行查看openstack的用户,openstack user list (会报错)
因为需要与keystone认证,在家目录下有个keystonerc_admin文件,认证为source ~/keystonerc_admin