OpenStack入门体验

目录

什么是云计算

云计算的服务模型

OpenStack概述

OpenStack一键部署

使用packstack一键离线部署OpenStack

通过 Dashboard体验OpenStack功能

创建云主机


什么是云计算

云计算是一种通过网络(通常是互联网)提供计算资源和服务的模式,它可以让用户按需获取服务器、存储、数据库、软件等资源,而无需自己搭建和维护物理基础设施。以下是关于云计算的详细介绍

一、核心概念

云计算的本质是将分散的计算资源(如服务器、存储设备等)通过网络整合起来,形成一个巨大的 “资源池”,并以服务的形式交付给用户。用户无需关心这些资源的具体位置和实现方式,只需通过网络连接即可使用。

二、关键特征

五、优势与应用场景

优势

应用场景

六、发展趋势

  • 按需自助服务:用户可根据自身需求,自主申请和使用计算资源(如服务器的 CPU、内存、存储空间等),无需人工干预。
  • 广泛的网络访问:资源可通过互联网或局域网被访问,用户可在任何地方、使用各种设备(如电脑、手机)接入。
  • 资源池化:服务提供商将计算资源集中管理,动态分配给不同用户,实现资源的共享和优化利用。
  • 快速弹性扩展:资源可根据用户需求快速增加或减少,例如在业务高峰期自动扩展服务器容量,低谷期释放资源以节省成本。
  • 可计量的服务:系统会自动监控和计量用户对资源的使用情况,按使用量(如存储容量、计算时间、流量等)计费,透明且灵活。
  • 三、服务模式

    根据服务的层次和类型,云计算主要分为以下三种模式:

     
    服务模式 定义 常见示例
    基础设施即服务(IaaS) 提供基础的计算、存储和网络资源,用户可自行部署操作系统和应用程序。 亚马逊 AWS EC2、微软 Azure 虚拟机、阿里云 ECS
    平台即服务(PaaS) 提供开发和运行应用程序的平台,包括操作系统、数据库、中间件等。 谷歌 App Engine、Heroku、阿里云 PAAS
    软件即服务(SaaS) 直接向用户提供可通过网络访问的软件应用,用户无需安装和维护软件。 微软 Office 365、Salesforce、钉钉

    四、部署模式

    根据服务的部署位置和使用对象,云计算可分为以下几种部署模式:

  • 公有云:由第三方服务提供商运营,通过互联网向公众提供服务,资源共享且成本较低(如 AWS、阿里云、腾讯云)。
  • 私有云:为特定组织或企业单独构建,部署在企业内部数据中心或托管场所,安全性和可控性更高(如企业自建的云平台)。
  • 混合云:结合公有云和私有云,通过技术手段实现两者的资源互通和数据共享,兼顾灵活性和安全性(如企业将敏感数据存储在私有云,非敏感业务部署在公有云)。
  • 社区云:多个相关组织或机构共享的云平台,通常用于满足特定行业或社区的共同需求(如医疗行业的共享云平台)。
  • 降低成本:无需购买和维护大量硬件设备,按需付费,减少初期投资和运维成本。
  • 提高效率:资源部署和扩展速度快,用户可专注于业务开发,而非基础设施管理。
  • 灵活性强:可根据业务需求动态调整资源,适应流量波动(如电商大促时的服务器扩容)。
  • 可靠性高:服务提供商通常有专业的容灾和备份机制,保障数据和业务的连续性。
  • 企业 IT 基础设施:企业通过云计算部署网站、邮箱、ERP 系统等,减少服务器运维压力。
  • 大数据分析:利用云计算的大规模计算能力处理和分析海量数据(如用户行为分析、市场趋势预测)。
  • 人工智能与机器学习:借助云平台的高性能计算资源训练模型(如语音识别、图像识别)。
  • 软件开发与测试:开发者在 PaaS 平台上快速搭建开发环境,测试和部署应用程序。
  • 个人服务:如云存储(百度网盘、Dropbox)、云游戏(无需高性能电脑即可运行大型游戏)。
  • 边缘计算融合:云计算与边缘计算结合,在靠近终端设备的边缘节点处理数据,降低延迟(如自动驾驶、工业物联网)。
  • 容器化与微服务:通过 Docker、Kubernetes 等技术优化云资源的部署和管理,提高应用的可移植性和弹性。
  • 绿色云计算:服务提供商致力于使用可再生能源,降低数据中心的能耗,实现低碳发展。
  • 量子计算集成:未来可能将量子计算能力融入云计算,解决复杂的科学计算和加密问题。

云计算的服务模型

云计算的服务模型是根据用户需求和服务交付层次划分的核心架构,主要分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS) 三种模式。以下是对这三种服务模型的详细解析:

一、基础设施即服务(Infrastructure as a Service, IaaS)

定义

提供基础 IT 基础设施的云端资源,用户可按需获取计算、存储、网络等硬件资源,并自主控制操作系统、中间件和应用程序的部署。

核心能力
  • 计算资源:虚拟服务器(VM)、物理服务器、容器实例(如 AWS EC2、阿里云 ECS)。
  • 存储资源:块存储(如 EBS)、对象存储(如 S3)、文件存储(如 NFS)。
  • 网络资源:虚拟网络(VPC)、负载均衡、防火墙、IP 地址管理。
用户职责与提供商职责
  • 用户:管理操作系统、应用程序、数据及安全配置。
  • 提供商:维护服务器、存储、网络等物理基础设施及虚拟化层。
典型场景
  • 企业搭建官网或应用系统(如通过阿里云 ECS 部署 Web 服务器)。
  • 大数据处理集群的弹性扩展(如 Hadoop 集群按需申请计算节点)。

二、平台即服务(Platform as a Service, PaaS)

定义

在 IaaS 基础上,提供完整的开发、测试、部署和运行应用程序的平台环境,免去用户对底层基础设施的管理。

核心能力
  • 开发工具:集成开发环境(IDE)、代码仓库(如 GitHub 集成)、CI/CD 流水线。
  • 运行环境:操作系统(如 Linux 发行版)、数据库(MySQL、PostgreSQL)、中间件(Tomcat、Redis)。
  • 服务组件:消息队列(Kafka)、AI 模型训练框架(TensorFlow)、API 管理工具。
用户职责与提供商职责
  • 用户:开发、部署和管理应用程序及数据。
  • 提供商:维护基础设施、开发平台及运行环境。
典型场景
  • 开发者快速构建 Web 应用(如使用 Google App Engine 开发 Python 应用)。
  • 企业开发微服务架构系统(如通过 Heroku 部署 Spring Boot 微服务)。

三、软件即服务(Software as a Service, SaaS)

定义

直接向用户提供可通过网络访问的软件应用,用户无需安装、部署或维护软件,只需按需订阅使用。

核心能力
  • 标准化应用:办公软件(如 Office 365)、客户关系管理(CRM,如 Salesforce)、企业资源计划(ERP,如 SAP Cloud)。
  • 垂直领域服务:在线教育平台、医疗管理系统、人力资源管理(HRM)工具。
  • 多租户架构:多个用户共享同一套软件实例,但数据隔离。
用户职责与提供商职责
  • 用户:配置账号、使用功能及管理数据。
  • 提供商:维护软件版本、服务器、安全及合规性。
典型场景
  • 企业使用钉钉进行考勤和办公沟通。
  • 个人通过 Canva 在线设计图片(无需安装本地设计软件)。

四、三种服务模型的对比

维度 IaaS PaaS SaaS
用户控制权 高(控制 OS、应用) 中(专注应用开发) 低(仅配置功能)
管理复杂度 高(需管理 OS 和底层资源) 中(无需管理基础设施) 低(开箱即用)
典型用户 IT 运维团队、企业开发者 应用开发者、初创团队 普通用户、企业业务部门
计费方式 按计算 / 存储 / 网络资源使用量计费 按应用实例数、资源消耗量计费 按用户数、功能模块订阅费计费
代表产品 AWS EC2、阿里云 ECS Google App Engine、Heroku Office 365、Salesforce

五、服务模型的延伸:XaaS(一切即服务)

随着云计算发展,衍生出更细分的服务模型:

  • 数据库即服务(DBaaS):如 AWS RDS,提供托管数据库服务,无需手动管理数据库服务器。
  • 容器即服务(CaaS):如 Docker Cloud,专注于容器化应用的部署和管理。
  • 函数即服务(FaaS):如 AWS Lambda,支持无服务器架构,用户仅需编写函数代码,无需管理服务器。

OpenStack概述

OpenStack 概述:开源云计算的核心引擎

一、OpenStack 的定义与定位

OpenStack 是一个开源的云计算管理平台,旨在通过软件定义的方式统一管理数据中心的计算、存储、网络等资源,实现基础设施即服务(IaaS)的自动化部署与管理。它由社区驱动开发,支持大规模集群的弹性扩展,被广泛应用于企业私有云、公有云和混合云场景。

二、发展历程与社区生态
  1. 起源(2010 年):由 Rackspace 和 NASA 联合发起,首个版本 “Austin” 发布,核心功能聚焦计算资源管理(Nova)和对象存储(Swift)。
  2. 快速迭代:每年发布两个版本(以字母顺序命名,如 2023 年的 “Victoria”、2024 年的 “Wallaby”),功能从 IaaS 扩展到容器、AI 算力调度等领域。
  3. 社区规模:截至 2025 年,全球超 500 家企业参与开发(如 Red Hat、SUSE、阿里云),用户包括 NASA、AT&T、招商银行等。
三、核心组件与功能架构

OpenStack 采用模块化设计,各组件通过 API 协同工作,主要包括:

1. 计算资源管理:Nova
  • 功能:创建、管理虚拟机实例(VM),支持 CPU、内存资源的弹性分配与调度。
  • 核心能力:热迁移(Live Migration)、高可用(HA)、资源监控(如 CPU 利用率、内存占用)。
2. 网络资源管理:Neutron
  • 功能:提供软件定义网络(SDN)能力,支持虚拟网络(VPC)、负载均衡、防火墙规则配置。
  • 典型场景:为虚拟机分配 IP 地址、搭建隔离的租户网络(如企业多部门网络隔离)。
3. 块存储管理:Cinder
  • 功能:为虚拟机提供持久化存储卷(如 EBS 类似功能),支持快照、备份和卷扩容。
  • 集成存储:对接 NFS、Ceph 等存储系统,实现存储资源的统一管理。
4. 对象存储:Swift
  • 功能:提供海量非结构化数据存储(如图片、日志),支持高可用和分布式架构。
  • 特点:无单点故障,适合备份、大数据分析等场景(如替代 AWS S3)。
5. 身份认证:Keystone
  • 功能:统一身份认证与权限管理(IAM),支持多租户隔离和角色 - based 访问控制(RBAC)。
  • 应用场景:企业内部不同部门用户的权限分配(如开发组仅能访问测试环境资源)。
6. 镜像服务:Glance
  • 功能:管理虚拟机镜像(如 Linux 系统镜像、Windows 镜像),支持镜像上传、存储和分发。
7. 控制面板:Horizon
  • 功能:Web 图形界面,方便管理员和用户可视化操作资源(如创建 VM、配置网络)。
四、OpenStack 的技术特点
  1. 开源与灵活性
    • 代码开源,企业可根据需求定制功能(如添加私有云特有的安全策略)。
    • 支持异构硬件(x86、ARM)和多种虚拟化技术(KVM、VMware、容器)。
  2. 大规模可扩展性
    • 单个集群可管理数千台服务器,通过添加节点实现资源无缝扩展。
  3. 多云与混合云支持
    • 可对接 AWS、Azure 等公有云,或与私有云组件(如 VMware)集成,构建混合架构。
  4. 高可用性与自动化
    • 组件支持多节点冗余(如 Nova 控制器集群),减少单点故障;通过 Heat 组件实现基础设施即代码(IaC)自动化部署。
五、应用场景与典型案例
  1. 企业私有云
    • 案例:某银行使用 OpenStack 搭建私有云,为核心业务系统提供隔离的计算资源,满足合规性要求。
  2. 电信运营商公有云
    • 案例:中国移动通过 OpenStack 构建公有云平台,为中小企业提供弹性计算服务。
  3. 科研与教育领域
    • 案例:高校利用 OpenStack 搭建教学云平台,学生可按需申请虚拟机进行实验(如大数据课程实践)。
六、与其他云计算方案的对比
维度 OpenStack AWS/Azure(公有云) VMware vSphere(传统虚拟化)
属性 开源、软件定义基础设施 商业公有云服务 商业虚拟化软件
控制权 高(自主管理基础设施) 中(依赖云厂商 API) 中(聚焦虚拟化层管理)
成本 硬件 + 运维成本较高(需自建数据中心) 按需付费,无前期硬件投入 软件授权费用高
适合场景 大型企业私有云、定制化需求 中小企业、快速上线业务 传统 IT 环境升级
七、挑战与发展趋势
  1. 部署与运维复杂度
    • 组件多、配置复杂,需专业团队维护(衍生出 Mirantis、SUSE 等商业支持服务)。
  2. 容器与 Kubernetes 集成
    • 近年来加强与 Kubernetes 的协同(如通过 OpenStack Magnum 管理容器集群),适应云原生趋势。
  3. 边缘计算与 AI 支持
    • 新增 Edge Computing、AI Resource Scheduler 等功能,拓展边缘场景(如工业物联网算力调度)。

OpenStack一键部署

OpenStack 一键部署方案解析

OpenStack 的部署复杂度较高,传统手动部署需配置多个组件及依赖关系,耗时耗力。因此,一键部署工具成为快速搭建 OpenStack 环境的关键。以下是主流一键部署方案及其技术解析:

一、主流一键部署工具对比

工具 特点 适用场景 技术栈
DevStack 单节点快速部署,用于开发测试环境 开发者学习、功能验证 Shell 脚本,支持最新版本
RDO Manager 基于 TripleO,支持多节点生产环境部署,Red Hat 官方推荐 企业级私有云部署 Heat 编排 + Puppet 配置管理
MAAS + Juju MAAS 管理物理服务器,Juju 负责应用部署,支持大规模集群扩展 数据中心级部署 MAAS(裸机管理)+ Juju(Charm 模型)
Kolla-Kubernetes 基于 Kubernetes 容器化部署 OpenStack,简化升级和扩展 云原生架构部署 Docker + Kubernetes
OpenStack Charms Canonical 提供的 Charm 组件,通过 Juju 部署,支持跨云集成 Ubuntu 环境下的快速部署 Juju + Ubuntu

二、DevStack:开发者首选的快速部署方案

1. 核心优势
  • 单节点部署:15-30 分钟内完成最小化 OpenStack 环境搭建
  • 高度可定制:通过local.conf配置文件自定义启用组件(如仅部署 Nova+Neutron)
  • 版本同步:与 OpenStack 社区版本保持同步(如最新的 Victoria 版本)
2. 部署步骤
# 1. 准备Ubuntu 20.04服务器(至少8GB内存,50GB磁盘)
sudo apt update && sudo apt upgrade -y

# 2. 克隆DevStack仓库
git clone https://opendev.org/openstack/devstack
cd devstack

# 3. 创建local.conf配置文件(示例)
cat > local.conf << EOF
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=\$ADMIN_PASSWORD
RABBIT_PASSWORD=\$ADMIN_PASSWORD
SERVICE_PASSWORD=\$ADMIN_PASSWORD

# 启用必要组件
ENABLED_SERVICES=n-cpu,n-api,n-cond,n-sch,n-novnc,n-cauth,neutron,q-svc,q-agt,q-dhcp,q-l3,q-meta,horizon,g-api,g-reg,key
EOF

# 4. 执行部署脚本
./stack.sh
. 验证部署

部署完成后,通过浏览器访问http://<服务器IP>,使用默认账号admin/secret登录 Horizon 控制台,查看虚拟机、网络等资源

三、RDO Manager:企业级生产环境部署

1. 架构特点
  • 基于 TripleO(OpenStack on OpenStack),使用 OpenStack 自身组件部署管理 OpenStack
  • 高可用设计:支持多控制器节点、负载均衡和数据库集群
  • 自动化升级:通过 Heat 模板实现滚动升级,减少停机时间
2. 部署流程
# 1. 准备Undercloud节点(部署管理节点)
sudo yum install -y https://rdoproject.org/repos/rdo-release.rpm
sudo yum install -y python-tripleoclient

# 2. 配置instackenv.json定义物理节点
cat > instackenv.json << EOF
{
  "nodes": [
    {
      "pm_type": "ipmi",
      "pm_user": "admin",
      "pm_password": "password",
      "pm_addr": "192.168.1.101",
      "mac": ["00:11:22:33:44:55"]
    }
    // 添加更多计算、控制、存储节点...
  ]
}
EOF

# 3. 部署Overcloud(实际OpenStack环境)
openstack overcloud deploy --templates \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml

四、Kolla-Kubernetes:云原生部署方案

1. 技术亮点
  • 容器化组件:将每个 OpenStack 服务打包为 Docker 容器
  • Kubernetes 编排:利用 K8s 的自动扩缩容、健康检查和服务发现能力
  • 轻量级架构:减少服务间依赖,提升资源利用率
# 1. 安装Kubernetes集群(推荐kubeadm或RKE)
# 2. 配置Helm包管理器
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

# 3. 部署OpenStack服务
helm repo add openstack https://charts.openstack.org
helm install openstack openstack/openstack \
  --namespace openstack \
  --values my-values.yaml  # 自定义配置(如数据库连接、网络设置)

 

网络配置建议
  • 多网卡隔离:控制平面、数据平面、存储网络分开
  • MTU 设置:Open vSwitch 建议设置 MTU 为 9000(需交换机支持)
  • VLAN 规划:为租户网络预留足够 VLAN ID(如 100-4000)
3. 常见问题排查
  • 服务启动失败:检查/var/log/stack.sh日志,确认依赖服务是否正常
  • 网络不通:使用neutron net-listnova list检查网络和虚拟机状态
  • 认证失败:验证 Keystone 配置,检查/etc/keystone/keystone.conf中的数据库连接

六、商业化一键部署方案

  • Red Hat OpenStack Platform:基于 RDO Manager,提供企业级支持和维护
  • SUSE OpenStack Cloud:集成 SUSE Linux Enterprise Server,简化部署流程
  • Mirantis OpenStack:容器化 OpenStack 发行版,支持快速升级和混合云集成

这些商业方案通常提供图形化界面、自动化监控和技术支持,适合对稳定性要求较高的企业用户

使用packstack一键离线部署OpenStack

离线环境准备

1. 硬件要求
组件 CPU 内存 存储 网络
部署节点 2 核 + 8GB+ 100GB+ SSD 双网卡
控制节点 4 核 + 16GB+ 50GB+ 万兆网卡
计算节点 8 核 + 32GB+ 1TB+ 万兆网卡
2. 系统要求
  • 操作系统:CentOS/RHEL 8.x(推荐)或 Rocky Linux 8.x
  • 网络配置
    • 管理网络(192.168.100.0/24)
    • 数据网络(192.168.101.0/24)
    • 外部网络(公网或专用网络)

二、在线环境下载资源

1. 创建资源下载脚本
#!/bin/bash
# download_packstack_resources.sh

# 创建下载目录
mkdir -p /opt/packstack_offline/{repos,puppet,images}
cd /opt/packstack_offline

# 1. 下载RDO OpenStack仓库
yum install -y https://rdoproject.org/repos/rdo-release.rpm
reposync -n -a x86_64 -p repos --repo=baseos --repo=appstream --repo=extras
reposync -n -a x86_64 -p repos --repo=openstack-victoria --repo=epel

# 2. 下载Packstack安装包
yum install -y --downloadonly --downloaddir=repos/packstack openstack-packstack

# 3. 下载Puppet模块
puppet module install --target-dir=puppet \
  puppetlabs-stdlib \
  puppetlabs-apache \
  puppetlabs-mysql \
  # 添加更多OpenStack相关模块...

# 4. 下载镜像文件
wget -P images https://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img
# 创建本地仓库配置文件
cat > /etc/yum.repos.d/local.repo << EOF
[local-baseos]
name=Local BaseOS
baseurl=file:///opt/packstack_offline/repos/baseos
gpgcheck=0
enabled=1

[local-appstream]
name=Local AppStream
baseurl=file:///opt/packstack_offline/repos/appstream
gpgcheck=0
enabled=1

# 添加其他仓库...
EOF

 

yum install -y /opt/packstack_offline/repos/packstack/*.rpm
# 编辑answer.txt,修改以下关键参数
CONFIG_CONTROLLER_HOST=192.168.100.10    # 控制节点IP
CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12  # 计算节点IP
CONFIG_NETWORK_HOSTS=192.168.100.10      # 网络节点IP
CONFIG_STORAGE_HOST=192.168.100.13       # 存储节点IP(可选)

# 配置数据库和消息队列
CONFIG_MARIADB_HOST=192.168.100.10
CONFIG_AMQP_HOST=192.168.100.10

# 配置网络
CONFIG_NEUTRON_L2_AGENT=openvswitch
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat
CONFIG_PROVISION_DEMO=n                   # 不创建演示环境节省资源

通过 Dashboard体验OpenStack功能

OpenStack 的 Dashboard(Horizon)作为图形化管理界面,无需命令行即可直观操作云资源。以下从登录访问、核心模块功能到实战场景,详细介绍如何通过 Dashboard 全面体验 OpenStack 能力

创建云主机

  1. 登录 Dashboard
    访问 http://<控制节点IP>/horizon,使用管理员或项目用户账号登录。

  2. 导航至实例页面
    点击左侧菜单 计算 → 实例 → 启动实例

  3. 填写基本信息

    • 实例名称:自定义(如 web-server-01
    • 描述:可选,简要说明用途
    • 可用区域:默认选择 nova
  4. 选择镜像
    在  标签页中:

    • 选择 镜像 类型
    • 从下拉列表中选择系统镜像(如 Ubuntu 22.04
    • 可点击 创建快照 基于现有实例创建自定义镜像
  5. 选择规格(Flavor)
    在 Flavor 标签页中:

    • 选择预定义规格(如 m1.small:1 核 CPU、2GB 内存、20GB 磁盘)
    • 若规格不足,可联系管理员创建新 Flavor
  6. 配置网络
    在 网络 标签页中:

    • 从 可用网络 列表选择已创建的网络(如 private-net
    • 点击 + 添加到 已分配网络
    • 若需多网卡,重复添加其他网络
  7. 添加密钥对
    在 访问与安全 标签页中:

    • 选择已创建的密钥对(如 my-key
    • 注意:若未上传密钥,将无法 SSH 登录
  8. 配置安全组

    • 默认选择 default 安全组(通常开放 ICMP 和 SSH)
    • 若需开放其他端口(如 Web 服务的 80/443),需提前配置安全组规则

你可能感兴趣的:(openstack)