杰瑞科技汇

OpenStack使用教程,新手如何快速上手?

OpenStack 使用教程:从入门到实践

本教程将分为以下几个部分:

OpenStack使用教程,新手如何快速上手?-图1
(图片来源网络,侵删)
  1. 第一部分:OpenStack 核心概念 - 在动手之前,你必须知道这些。
  2. 第二部分:准备工作与环境搭建 - 如何获取一个可以操作的 OpenStack 环境。
  3. 第三部分:Web 界面操作指南 - 通过最直观的 Horizon 控制台进行操作。
  4. 第四部分:命令行操作指南 - 使用 OpenStack Client 进行更高效的操作。
  5. 第五部分:进阶与最佳实践 - 日常运维和开发的建议。
  6. 第六部分:学习资源与社区 - 持续学习的路径。

第一部分:OpenStack 核心概念

OpenStack 是一个云操作系统,它通过一系列相互协作的开源项目来管理计算、存储、网络等资源,你可以把它想象成一个“云操作系统的内核”,理解其核心组件是使用它的第一步。

核心架构:项目

OpenStack 由多个独立的项目组成,每个项目负责一个特定的功能,以下是几个最核心的项目:

  • Nova (计算)

    • 作用:虚拟机生命周期管理,负责创建、启动、停止、删除虚拟机(在 OpenStack 中称为 实例 Instance)。
    • 类比:数据中心的物理服务器集群和电源管理系统。
  • Neutron (网络)

    OpenStack使用教程,新手如何快速上手?-图2
    (图片来源网络,侵删)
    • 作用:为实例提供网络连接,可以创建虚拟网络、路由器、防火墙、负载均衡器等,实现复杂的网络拓扑。
    • 类比:数据中心的交换机、路由器和防火墙。
  • Cinder (块存储)

    • 作用:为实例提供持久的块存储设备(类似硬盘),你可以为实例附加一个或多个云硬盘,并在实例删除后保留数据。
    • 类比:连接到服务器的 SAN/NAS 存储。
  • Glance (镜像)

    • 作用:虚拟机镜像管理,存储和分发虚拟机的模板(操作系统、软件预装等),创建实例时,需要从一个镜像开始。
    • 类比:服务器的系统安装光盘和系统备份。
  • Keystone (身份认证)

    • 作用:OpenStack 的“门卫”,负责用户认证、授权和服务目录,所有的 API 请求都必须经过 Keystone 的验证。
    • 类比:公司的门禁卡系统和员工花名册。
  • Horizon (仪表盘)

    OpenStack使用教程,新手如何快速上手?-图3
    (图片来源网络,侵删)
    • 作用:提供 Web 界面,用户可以通过浏览器图形化地管理所有资源(实例、网络、镜像等)。
    • 类比:公司的管理面板和操作界面。

关键术语

  • Tenant (租户):一个项目或用户组的隔离环境,你可以把它理解为一个“虚拟的数据中心”或一个“账户”,不同租户之间的资源是完全隔离的。
  • User (用户):租户下的具体操作者。
  • Role (角色):定义了用户在租户内的权限(如 admin 管理员,member 普通成员,reader 只读用户)。
  • Flavor (规格):定义虚拟机硬件配置的模板,包括 CPU 核心数、内存大小、磁盘大小。
  • Image (镜像):虚拟机的模板或快照。
  • Instance (实例):正在运行的虚拟机。
  • Security Group (安全组):虚拟机的虚拟防火墙,你可以在其中定义入站和出站的规则(如允许 SSH 端口 22,允许 HTTP 端口 80)。
  • Key Pair (密钥对):用于通过 SSH 无密码登录到实例的一对公钥和私钥。

第二部分:准备工作与环境搭建

“工欲善其事,必先利其器”,你需要一个 OpenStack 环境来练习。

获取 OpenStack 环境

对于初学者,强烈推荐使用公有云或实验室环境,而不是自己从头搭建一个生产级环境,因为后者非常复杂。

  • 公有云平台(推荐新手)

    • Rackspace Cloud:OpenStack 的创始者之一,提供最“原生”的 OpenStack 体验。
    • 华为云腾讯云阿里云:虽然它们有自己封装的控制台,但通常也提供 OpenStack API 兼容接口,并会提供 OpenStack RC 文件。
    • 优点:环境稳定,无需自己维护,按需付费。
    • 如何开始:注册一个账号,创建一个项目,然后在控制台找到“API 密钥”或类似选项,下载 openrc.sh 文件。
  • 实验室环境(推荐有一定基础的用户)

    • DevStack:一套用 Shell 脚本快速在单机上部署一个完整 OpenStack 环境的工具,非常适合开发和测试。
    • Kolla / TripleO:更复杂的部署工具,用于生产环境的安装。
    • OpenLab:一个在线的、免费的 OpenStack 沙盒环境,可以临时租用资源进行实验。

配置 OpenStack Client

OpenStack Client (openstack) 是一个强大的命令行工具,比 Web 界面更高效。

  1. 安装

    # Ubuntu/Debian
    sudo apt update && sudo apt install python3-openstackclient
    # CentOS/RHEL
    sudo yum install python3-openstackclient
  2. 配置认证信息: 从你的云平台下载 openrc.sh 文件(通常命名为 admin-openrc.shdemo-openrc.sh),然后执行它:

    # 假设你下载了 demo-openrc.sh 文件
    source demo-openrc.sh

    执行后,它会要求你输入密码,之后,你的环境变量(如 OS_AUTH_URL, OS_PROJECT_NAME)就设置好了。

  3. 测试连接

    openstack token issue

    如果能成功返回你的 token 信息,说明连接成功。


第三部分:Web 界面操作指南

Horizon 为例,这是最直观的方式。

  1. 登录:用你的用户名和密码登录 Horizon 的 Web 界面。

  2. 创建密钥对

    • 路径Project -> Compute -> Key Pairs
    • 操作:点击 Create Key Pair,输入一个名称(如 my-key),然后点击 Create
    • 重要:页面会自动下载一个 my-key.pem 文件。妥善保管这个私钥文件,你将用它来登录实例,注意文件权限:chmod 400 my-key.pem
  3. 创建安全组

    • 路径Project -> Compute -> Security Groups
    • 操作:点击 Create Security Group,输入名称(如 default-ssh-http),描述可以不填。
    • 添加规则:点击你刚创建的安全组名称,进入 Rules 标签页,点击 Add Rule
      • 规则1 (SSH)DirectionIngress (入站),ProtocolTCPPort Range22Remote0.0.0/0 (允许所有 IP 访问)。
      • 规则2 (HTTP):同样添加一条 TCP 端口 80 的规则。
  4. 启动一个实例

    • 路径Project -> Compute -> Instances
    • 操作:点击 Launch Instance
    • 基本信息
      • Instance Name:给你的虚拟机起个名字(如 my-first-vm)。
    • :选择一个镜像(如 Ubuntu 22.04 LTS)。
    • 实例类型:选择一个 Flavor(如 m1.tiny,配置最小)。
    • 网络:选择一个网络(通常是 selfserviceprivate)。
    • 安全组:勾选你刚才创建的 default-ssh-http
    • 密钥对:选择你创建的 my-key
    • 点击 Launch
  5. 管理实例

    • 查看:回到 Instances 页面,你会看到 my-first-vm 的状态从 Building 变为 Active
    • 获取 IP 地址:点击实例名称,在详情页的 Access & Security 标签页下,找到浮动 IP 地址,如果没有,可以点击 Associate Floating IP 分配一个。
    • 登录实例
      # 使用你下载的私钥和浮动 IP
      ssh -i my-key.pem ubuntu@<你的浮动IP地址>
    • 操作:在实例列表中,你可以对实例进行 Pause (暂停), Suspend (休眠), Reboot (重启), Terminate (删除) 等操作。

第四部分:命令行操作指南

命令行操作更快速,适合自动化和脚本。

创建密钥对

# 创建密钥对,公钥会上传到 OpenStack,私钥会保存到 local-key.pem
openstack keypair create --public-key ~/.ssh/id_rsa.pub my-key-cli

创建安全组

# 创建安全组
openstack security group create default-ssh-http-cli
# 添加 SSH 规则
openstack security group rule create --proto tcp --dst-port 22:22 --remote-ip 0.0.0.0/0 default-ssh-http-cli
# 添加 HTTP 规则
openstack security group rule create --proto tcp --dst-port 80:80 --remote-ip 0.0.0.0/0 default-ssh-http-cli

启动实例

# 查看可用的镜像和规格
openstack image list
openstack flavor list
# 启动实例
openstack server create \
  --flavor m1.tiny \
  --image "Ubuntu 22.04 LTS" \
  --security-group default-ssh-http-cli \
  --key-name my-key-cli \
  my-second-vm

管理实例

# 查看实例列表和状态
openstack server list
# 获取实例的 IP 地址
openstack server show my-second-vm
# 登录实例 (需要先获取 Floating IP)
openstack server add floating ip my-second-vm <你的浮动IP地址>
ssh -i ~/.ssh/id_rsa ubuntu@<你的浮动IP地址>
# 重启实例
openstack server reboot --hard my-second-vm
# 删除实例 (这将同时删除其磁盘)
openstack server delete my-second-vm

第五部分:进阶与最佳实践

当你掌握了基本操作后,可以探索更高级的功能。

  • 使用 Cinder 卷
    • 创建一个卷:openstack volume create --size 10 my-volume
    • 在创建实例时附加它,或者在实例运行时附加/分离它。
  • 使用 Swift 对象存储
    • 适合存储非结构化数据,如图片、视频、备份文件,使用 swift 命令行工具或 API 进行文件的上传下载。
  • 使用 Heat 编排

    编写一个 YAML 文件来定义和部署一整套云资源(如“一键部署一个包含 Web 服务器和数据库的完整应用”),实现基础设施即代码。

  • 使用 Sahara 大数据处理

    在 OpenStack 上快速创建和管理 Hadoop、Spark 等大数据集群。

  • 监控与日志
    • 集成 Ceilometer (监控) 和 Aodh (告警) 来收集资源使用数据,设置阈值告警。

第六部分:学习资源与社区

  • 官方文档docs.openstack.org - 最权威、最全面的资料,但可能对新手不友好,建议从特定项目的文档入手。
  • OpenStack 用户指南OpenStack User Documentation - 从用户角度出发的指南,非常适合初学者。
  • OpenLabOpenLab - 免费的在线实验环境,边学边练。
  • Rackspace OpenStack 简明教程Rackspace OpenStack Essentials - 非常经典的入门文章。
  • 社区
    • 邮件列表:每个项目都有自己的邮件列表,是提问和交流的好地方。
    • IRC (Internet Relay Chat)#openstack 频道有大量开发者和活跃用户可以实时交流。
    • Stack Overflow:使用 openstack 标签提问。

学习 OpenStack 是一个循序渐进的过程:

  1. 理解概念:不要急于操作,先搞懂 Nova, Neutron, Cinder 等核心组件是做什么的。
  2. 动手实践:从 Horizon 或 OpenStack Client 开始,完成“创建密钥 -> 启动实例 -> 登录实例”这个完整流程。
  3. 掌握 CLI:熟悉命令行工具,这是日常运维和自动化的基础。
  4. 探索进阶:根据你的需求,深入学习网络、存储、编排等高级特性。
  5. 善用资源:遇到问题时,官方文档和社区是你的最佳朋友。

祝你学习顺利!

分享:
扫描分享到社交APP
上一篇
下一篇