基于互联网的相关服务的增加、使用和交付模式;这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池这些资源能够被快速提供,管理投入及与供应商的交互都相对较少。通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。
基础设施即服务,提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其他基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序通常分为是三种用法:共有云、私有云和混合云。
平台即服务,以服务器平台或者开发环境作为服务进行提供;PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务即PaaS平台是指云环境中的应用基础设施服务,也可以说是中间件即服务。
软件即服务,是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商订购所需的应用软件服务用户不在购买软件,而是向提供商租用基于web的软件,不用对软件进行维护,同时也提供软件的离线操作和本地数据存储。
一套IaaS解决方案,开源的云计算管理平台,以Apache许可证为授权。
主要组件
Horizon:用于管理OpenStack各种服务的、基于web的管理接口;通过图形界面实现创建用户、管理网络、启动实例等操作。
keystone:为其他服务提供认证和授权的集中身份管理服务,也提供了集中的目录服务支持多种身份认证模式,如密码、令牌、以及AWS登录;为用户和其他服务提供了SSO认证服务.
Neutron:一种软件定义网络服务;用于创建网络、子网、路由器、管理浮动IP地址;可以实现虚拟交换机、虚拟路由器;用于创建VPN
Cinder:为虚拟机管理存储卷的服务;为运行在Nova中的实例提供永久的块存储;可以通过快照进行数据备份;经常应用在实例存储环境中(如数据库文件)
Glance:扮演虚拟机镜像注册的角色;允许用户为直接存储拷贝服务器镜像;这些镜像可以用于新建虚拟机的模板
Nova:在节点上用于管理虚拟机的服务,nova是一个分布式的服务,能够与keystone交互实现认证,与Glance交互实现镜像管理
nova被设计成在标准硬件上能够进行水平扩展,启动实例时如果有则需要下载镜像
节点 | ip地址 |
---|---|
OpenStack | 192.168.1.10 |
Nova01 | 192.168.1.11 |
Nova02 | 192.168.1.12 |
将公用yum仓库放在192.168.1.10主机节点。
-禁用selinux
]# vim /etc/selinux/config
SELINUX=disabled
-卸载系统防火墙
yum -y remove firewalld-*
-修改网卡配置文件,使用network服务
]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
# Generated by dracut initrd //注释
DEVICE=ens33 //驱动名称,与ifconfig 看到的名称一致
ONBOOT="yes" //开机启动
NM_CONTROLLED="no" //不接受 NetworkManager 控制
TYPE="Ethernet" //类型
BOOTPROTO="static" //协议(dhcp|static静态|none)
IPADDR="192.168.1.100" //IP地址
NETMASK="255.255.255.0" //子网掩码
GATEWAY="192.168.1.254" //默认网关
DNS1=114.114.114.114
DNS2=8.8.8.8
]# systemctl stop NetworkManager //停止网络管理工具
]# systemctl start network
]# systemctl enable network
]# yum remove -y NetworkManager //卸载网络管理工具
]# service network restart //重启网卡
]# reboot
-测试网络连通
]# ping -c 1 www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=128 time=14.0 ms
--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.028/14.028/14.028/0.000 ms
-在1.100上准备yum仓库
]# mkdir -p /var/ftp/{centos-1804,extras,openstack}
]# cd /var/iso/
]# mount -t iso9660 -o ro,loop CentOS-7.5-1804.iso /var/ftp/centos-1804
]# mount -t iso9660 -o ro,loop RHEL7-extras.iso /var/ftp/extras //-o指定选项,loop用来把一个文件当成硬盘分区mount到指定目录
]# mount -t iso9660 -o ro,loop RHEL7OSP-10.iso /var/ftp/openstack
//-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态
]# yum install -y vsftpd //搭建ftp服务器,将镜像挂载到ftp共享目录下
]# systemctl enable vsftpd
]# systemctl start vsftpd
-在四台机器上配置yum源(以1.100为例)
]# yum makecache //将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
]# vim /etc/yum.repo.d/local.repo //通过ftp服务搭建,ftp目录 /var/ftp
[BaseOS]
name=CentOS-$releasever - BaseOS
baseurl="ftp://192.168.1.100/centos-1804" //centos盘
enabled=1
gpgcheck=0
[local_extras]
name=CentOS-$releasever - extras
baseurl="ftp://192.168.1.100/extras" //RHEL7-extras.iso盘
enabled=1
gpgcheck=0
[openstack]
name=CentOS-$releasever - Openstack //RHEL7OSP-10.iso 中的rhel-7-server-openstack-10-rpms
baseurl="ftp://192.168.1.100/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[openstack-devel]
name=CentOS-$releasever - Openstack-devel //RHEL7OSP-10.iso 中的rhel-7-server-openstack-10-devtools-rpms
baseurl="ftp://192.168.1.100/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
-测试yum源
]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
BaseOS CentOS-7 - BaseOS 9,911
local_extras CentOS-7 - extras 76
openstack CentOS-7 - Openstack 680
openstack-devel CentOS-7 - Openstack-devel 3
repolist: 10,670 //共 10,670个包
]# vim /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8 //使用外部的DNS解析域名
]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.12 nova02
192.168.1.11 nova01 //将域名对应的ip解析到安装的OpenStack服务器
]# ping nova01
]# yum install -y chrony
]# vim /etc/chrony.conf
bindacqaddress 0.0.0.0
allow 0/0 //手动添加
]# systemctl enable chronyd
]# systemctl start chronyd //启动服务
]# ss -ltun //查看状态
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.1:323 *:*
udp UNCONN 0 0 *:123 *:*
-添加时间同步服务器(确保版本一致)
]# vim /etc/chrony.conf
server 192.168.1.100 iburst
]# systemctl start chronyd //重启chronyd服务
-测试
]# chronyc sources -v //出现*成功
210 Number of sources = 1
……
^* 192.168.1.100 3 6 7 1 -183us[-4297us] +/- 14ms
-虚拟化平台安装格外软件包(1.11、1.12)nova01/2
1.11]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
]# systemctl enable libvirtd
]# systemctl start libvirtd
]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since 六 2020-03-14 15:15:28 CST; 1min 16s ago
]# rpm -qa | grep NetworkManager*
]# rpm -qa | grep firewalld* //检查是否卸载firewalld 和 NetworkManager
-配置packstack(1.10)
1.10]# yum install -y openstack-packstack //首先安装packstack
]# packstack --gen-answer-file answer.ini //使用packstack创建应答文件
]# 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.100 //时间服务器
98: CONFIG_COMPUTE_HOSTS=192.168.1.11 //计算节点IP
102: CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //网络节点IP
333: CONFIG_KEYSTONE_ADMIN_PW=a //管理员密码
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //支持协议
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //网桥设备
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens33 //出口网卡
1179: CONFIG_PROVISION_DEMO=n //演示模块
-安装 openstack
]# packstack --answer-file=answer.ini
-网络管理
]# cat ifcfg-br-ex //br-ex为OVS网桥设备
……
IPADDR=192.168.1.10 //抢夺了ens33网卡的地址
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
……
DEVICETYPE=ovs //装置类型
OVSBOOTPROTO="static"
TYPE=OVSBridge //让KVM支持OpenvSwitch Bridge
]# cat ifcfg-ens33 //该网卡为OVS网桥的端口
DEVICE=ens33
NAME=ens33
DEVICETYPE=ovs
TYPE=OVSPort //类型为ovs端口
OVS_BRIDGE=br-ex
……
]# ovs-vsctl show //验证OVS配置,可以看到网络信息
-登录OpenStack
Horizon配置:
Horizon是一个用于管理、控制OpenStack服务的web控制面板,也称为Dashboard仪表盘可以管理实例、镜像、创建密钥对,对实例添加卷、操作swift容器等.
功能与特点:
实例管理:创建、终止实例,查看终端日志,VNC连接,添加等
访问与安全管理:创建安全群组,管理密钥对,设置浮动ip等
偏好设定:对虚拟硬件模板可以进行不同偏好设定
镜像管理:编辑或删除镜像
用户管理:创建用户等
卷管理:创建卷和快照
对象存储处理:创建、删除容器和对象
]# vim /etc/httpd/conf.d/15-horizon_vhost.conf //修改配置文件
35 WSGIProcessGroup apache
36 WSGIApplicationGroup %{GLOBAL} //添加此行
]# systemctl reload httpd //重启Apache服务
-web页面登录
在浏览器 http://192.168.1.10/ 输入账号admin 密码a登录
-命令行登录
]# 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
……
]# source keystonerc_admin //初始化环境变量
[root@openstack ~(keystone_admin)]# openstack help //使用帮助
(keystone_admin)]# openstack project create myproject //创建名为myproject的项目
(keystone_admin)]# openstack project list //查看项目信息,存在 myproject
(keystone_admin)]# openstack project delete myproject //删除myproject
(keystone_admin)]# nova quota-update --cores 30 myproject //更新vcpu配额为30
【扩展】VXLAN是一种网络虚似化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN是一种功能强大的工具,可以穿透三层网络对二层进行扩展。它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。