目录
一. 云计算概述
1. 什么是云计算
云计算(coud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市场发展趋势
云计算有广义和狭义之分
狭义的云计算是指通过网络按需向用户提供|基础设施,包括硬件、平台和软件,提供资源的网络被称为"云”。在使用者看来,“云”中的资源是无限大的,无论需要多少资源,云都可以提供。而在云端,所有的资源都可以通过横向进行扩展,如同使用水电煤气一样。以用电为例,如果用户自行发电,那么用户需要维护一台发电机,定期加油,出现问题需要维修。而如果使用公共电网,用户不需要知道发电厂在哪里、怎么发电等问题,只需要按需付费使用就可以,多用多付,少用少付。在用户看来,电的资源是无限的
广义的云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT 和软件、互联网相关的也可以是任意其他的服务
云计算是一种模型,提供无论在何时何地都可以便捷获取所需资源的模型,并能够让用户根据需要快速创建应用,并且在不需要时进行资源释放
现在云计算技术已经日渐成熟,很多企业已经拥有自己的私有云,而掌握这种技术的人才也更为抢手。目前,云计算使用最广泛的是开源项目OpenStack。经过多个版本的开发更新,现在已经到丅版。作为云计算项目之一的 OpenStack 也受到各个企业的青睐,成为大家搭建私有云的首选
2. 云计算的服务模型
云计算模型中有 laaS (lnfrastructure as aService,基础架构即服务)、PaaS(PlatfomasaService,平台即服务)、SaaS(Software asaService软件即服务)三种基本服务模型
(1)laas
aaS 提供最底层的I 基础设施服务,包括处理能力、存储空间、网络资源等。用户可以从中获取硬件或者虚拟硬件资源(包括课机或者虚拟机),之后可以给申请到的资源安装操作系统和其他应用程序。一般面向的对象是!管理人员
(2)Paas
Paas 是把已经安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其他应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的对象是开发人员,需要了解平台提供环境下的应用开发和部署
(3)Saas
SaaS 可直接通过互联网为用户提供软件和应用程序等服务。用户可以通过租凭的方式获取安装在厂商或者服务供应商那里的软件。一般面向的对象是普通用户,最常见的模式是提供给用户一组账号和密码
二. OpenStack 概述
1. OpenStack 起源
OpenStack 是 Rackspace(一家美国的云计算厂商)和美国国家航空航天局(National Aeronautics and Space Administration,简称 NASA)在 2010年7月共同发起的项目。由 Rackspace 贡献存储源码(Swift)、NASA 贡献计算源码(Nova)
2. 什么是OpenStack
OpenStack 是一个通过数据中心控制计算资源、存储资源和网络资源的云平台。同时它又是一款开源软件,以 Apache 许可证授权的自由软件和开放源代码项目,支持所有类型的云环境。OpenStack的目标是提供简单实施、可扩展以及丰富功能集的云产品,来自全世界的云计算专家共同维护该云项目。OpenStack通过多种补充服务提供了laaS解决方案每一种服务均提供了相应的应用程序接口(Application Programming Interface,简称 API),以促进各组件之间的整合
OpenStack 被用来提供公有云以及私有云的建设以及管理。作为一个开源项目,其社区规模涵盖 130 家企业以及 1350 位开发人员。这些机构与个人都将 OpenStack 作为 laaS资源的通用前端
OpenStack 覆盖了网络、虚拟化、操作系统、服务器等各个方面。2019年 10月OpenStack 发布了最新版本 Train。一般情况下,OpenStack 每半年左右更新一次版本。表中列出了 OpenStack 常见的8个核心项目(即 OpenStack 服务)
服务 | 项目名称 | 描述 |
---|---|---|
Compute (计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。对Hypervisor 进行屏蔽,支持多种虚拟化技术(红帽默认为 KVM),支持横向扩展 |
Network(网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络拓扑结构。是面向租户的网络管理,可以自定义网络,并使租户之间互不影响 |
Identity(身份认证服务) | Keystone | 类似于 LDAP 服务,对用户、租户和角色、服务进行认证与授权并且支持多认证机制 |
Dashboard(控制面板服务) | Horizon | 提供一个 Web 管理界面,与 OpenStack 底层服务进行交互 |
Image Service你(镜像服务) | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统复制为镜像模板,在创建虚拟机时直接使用。可支持多格式的镜像 |
Block Storage(块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储 |
Object Storage(对象存储服务) | Swift | 为 OpenStack 提供基于云的弹性存储,支持集群无单点故障 |
Telemetry(计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为 OpenStack 用户提供记账途径 |
3. OpenStack 优势
OpenStack 在控制性、兼容性、可扩展性、灵活性方面具备有优势,它可能成为云计算领域的行业标准
(1)控制性:完全开源的平台,模块化的设计,提供相应的 API接口,方便与第三方技术集成,从而满足自身业务需求
(2)兼容性:OpenStack兼容其他公有云,方便用户进行数据迁移
(3)可扩展性:0penstack采用模块化的设计,支持主流的Linux 发行版本,可以通过横向扩展,增加点、添加资源
(4)灵活性:用户可以根据自己的需要建立基础设施,也可以轻松地为自己的群集增加规模。Openstack 项目采用 Apache2 许可,意味着第三方厂家可以重新发布源代码
(5)行业标准:众多|领军企业都加入到 OpenStack 项目,意味着 OpenStack 在未来可能形成云计算行业标准
三. OpenStack一键部署
吏用 packstack 工具实现一键部署 OpenStack。通过该安装工具,只需简单运行一条命令,即可快速部署 OpenStack,省去繁琐的安装步骤,直妾体验 OpenStack的管理及使用
1. 环境介绍
需要提前部署一台新安装操作系统的主机,要求能访问互联网,主机的系统只需采用最小化方式安装。若通过 Vware 等虛拟机软件实现,网
络采用桥接模式
使用操作系统为 CentOS 7.9 的主机
安装部署 OpenStack 环境的硬件设备最低配置要求
类型 | 配置要求 |
---|---|
CPU | 支持 Intel 64 或 AMD64 CPU 扩展, 并启用了 AMD-V 或 Intel VT 硬件虚拟化支持的 64 位 x86 处理器,逻辑 CPU 个数为4核 |
内存 | 8GB |
磁盘空间 | 30GB |
案例环境
主机名 | IP地址/掩码 | 角色 |
---|---|---|
openstack | ens33:192.168.10.100/24 | 安装所有Openstack组件及需要的环境 |
2. 环境准备
①:系统版本:CentOS-7.9
IP地址:192.168.10.100
主机名:openstack
内存:16G
处理器数量:8
关机:开启虚拟化功能
②:设置基础环境
关闭并永久关闭防火墙,安全机制,网络管理器;设置地址解析;修改主机名;开启路由转发
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# bash
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
[root@openstack ~]# setenforce 0
[root@openstack ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# systemctl disable NetworkManager
[root@openstack ~]# vim /etc/hosts
192.168.10.100 openstack
[root@openstack ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@openstack ~]# sysctl -p
net.ipv4.ip_forward = 1
③:为系统设置阿里的仓库
## 系统默认使用rhel的kvm源,不能用于centos的系统,修改此源为阿里的:
[root@openstack ~]# cd /etc/yum.repos.d/
[root@openstack yum.repos.d]# rm -rf *
[root@openstack yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@openstack yum.repos.d]# vim CentOS-Base.repo
[Virt]
name=virt
baseurl=http://mirrors.aliyun.com/centos/7.9.2009/virt/x86_64/kvm-common/
gpgcheck=0
enable=1
## 设置openstack仓库
[root@openstack yum.repos.d]# vim train.repo
[train]
name=train
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-train/
gpgcheck=0
enabled=1
3. 添加虚拟网桥
(这种桥接可以让物理网络的其他主机连接openstack的虚拟机)
[root@openstack ~]# cd /etc/sysconfig/network-scripts/
[root@openstack network-scripts]# cp ifcfg-ens33 ifcfg-br-ex
[root@openstack network-scripts]# vim ifcfg-ens33
[root@openstack network-scripts]# vim ifcfg-br-ex
[root@openstack network-scripts]# systemctl restart network
4. 安装openstack
①:安装部署工具
[root@openstack ~]# yum -y install openstack-packstack
②:一键安装
[root@openstack ~]# packstack --alllinone
5. 通过 Dashboard 体验 OpenStack 功能
Horizon 是 OpenStack 的一个组件,同时也是OpenStack 中 Dashboard(仪表板,即 Web 控制台)的项目名,主要用于 Openstack 的管理,其底层通过 API和OpenStack 其他组件进行通信,为管理员提供Web 页面,以方便操作管理
在客户端的浏览器地址栏中输入 http:/192.168.10.100,进入Dashboard 的登录界面
(1)项目
主要包含访问APl、计算、卷、网络、对象存储分类
①:访问API
显示所有组件的服务端点,比如计算、注册等服务
②:计算机类
计算类主要有概况、实例、镜像、密钥对、主机组子类
概况:主要是云计算各资源的使用情况,“of”后面的数字表示资源的上限限制,默认有一个安全组
实例:所有创建过的云主机会在实例中显示,也可以新创建云主机
镜像:所有的镜像都会在这显示,可以执行创建镜像和删除镜像等操作
密钥对:可以创建密钥对通过远程免密码对云主机进行管理
主机组:依据相关的配置策略针对用户创建的虚拟主机进行管理,主要是约束虚拟主机与虚拟主机在物理主机上部署关系
③:卷类
云主机所用到的存储卷,可以创建卷和快照
卷:卷是可被连接到实例的块设备
快照:为一个卷创建一个快照
组:卷组提供了一种同时为多个卷创建快照的机制以确保数据一致性。一个卷组可以支持多种卷类型,但它包括的卷必须托管于同一个存储后端
组快照:针对组,作统一快照
④:网络类
网络类主要包含网络拓扑、网络、路由、安全组、浮动IP、中继子类
网络拓扑:显示当前网络的拓扑结构,包含网络、路由器以及接口
网络:显示已经创建的云主机网络,也可以新建网络或者编辑现有网络。默认就有一个公用的网络,子网为172.24.4.0124
路由:用于将云主机的私有地址通过路由的方式转发到其他私有网络,或通过 NAT转发到外部网络,实现网络通信。默认为空
安全组:类似于防火墙的功能,可以通过安全组设置入口和出口规则,用于控制进出云主机的网络流量。浮动IP:一般用于外部网络访问云主机,类似于NAT目标地址转换
中继:将父端口与子端口进行连接
⑤:对象存储类
容器表示存储数据的地方,和Windows 的文件夹、Linux 的目录类似
(2)管理员
“管理员”和“项目”选项卡具有相似的功能,但是权限不同。“管理员”选项卡操作权限更高,但是仅限管理员用户操作
①:概况
"管理员”选项卡里面包含了很多功能。其中“概况”列出了不同项目各种资源的使用情况
②:计算机类
"管理员"选项卡内的计算类拥有比“项目”的计算类选项卡内更多、更丰富的功能。拥有对系统资源更高的权限,有些操作只能在“管理员"选项卡的计算类内完成
虚拟机管理器:当前所有虚拟机在 CPU、内存和磁盘三方面的的使用情况
主机聚合:通过将主机组合到一起来把可用区域划分成逻辑单元
实例:列出已经存在的所有云主机,不包括创建实例选项
实例类型:创建云主机的规格,比如CPU 数量、内存容量、硬盘容量。默认会提供部分实例类型,也可以根据需求进行自定义
镜像:烈出所有的镜像,可以执行创建镜像和删除镜像等操作
③:卷类
卷应用到 OpenStack 的数据存储。“管理员”选项卡下的“卷”比“项目”下的“卷"多了两个功能,分别是“卷类型”和“组类型
卷:不同于“项目”中的“卷”,管理员选项卡下不能创建“卷”,适用于对“卷”的各种管理操作
快照:为卷创建的快照,可进行“删除卷快照”和“更新元数据”等操作
卷类型:在 OpenStack中创建卷时,选择一个类型或者标签,被称为卷类型针对这个卷,卷类型通常是指后端存储驱动程序一组指标
组:卷组提供了一种同时为多个卷创建快照的机制以确保数据一致性。一个卷组可以支持多种卷类型,但它包括的卷必托管于同一个存储后端
组快照:针对组,作的统一快照
组类型:组类型是在 OpenStack 创建组的时候可以指定的一个类型或标签它通常映射到这个组所使用的存储后端驱动器性能指标集合
④:网络类
“管理员”选项卡内的网络类基本功能和“项目”相比,多了“RBAC 策略”,少了“安全组
网络:显示已经创建的云主机网络,也可以新建网络或者编辑现有网络。默认就有一个公用的网络,其子网为172.24.4.0124
路由:用于将云主机的私有地址通过路由的方式转发到其他私有网络,或通过 NAT转发到外部网络,实现网络通信。默认为空
浮动 IP:是一些可以从外部访问的IP列表,通常从ISP 那里买来的。浮动!P缺省不会自动赋给实例,用户需要手动从地址池里抓取然后赋给实例
中继:将父端口与子端口进行连接
RBAC 策略:基于角色的访问控制(RBAC)策略框架允许运营商和用户授予对特定项目的资源访问权
(3)身份验证
身份管理主要有项目、用户、组、角色等分类
项目:显示当前所有的项目,即租户
用户:显示当前所有的用户
组:显示当前所有的组
角色:显示当前所有的角色
应用程序凭证:应用程序凭据提供了一种在不共享用户密码身份验证的情况下将用户授权委派给应用程序的方法
(4)创建云主机
①:修改admin密码
修改密码之后,重新登录
②:删除路由和网络管理员中创建
管理员成功登录 Dashboard 后,执行操作可以创建一个自定义的网络
在控制台中依次单击“计算"一“网络”一“网络”按钮。在右边区域默认存在公有网络 public,可以删除重新建一个 记得删除的时候一定要先删除管理员里面的网络–>找到路由,先删除路由–>再删除网络
③:创建网络
admin中创建
项目中创建
④:创建路由(项目中创建)
用demo身份创建云主机
(1)添加镜像(把默认的删除掉)
(2)创建镜像
(3)创建实例
(4)管理云主机并测试连通性