一、OpenStack (开源云计算管理平台)的核心服务组件及功能
计算服务(Compute - Nova)
- 功能:是 OpenStack 计算资源管理的核心组件,负责虚拟机实例全生命周期管理,像实例的创建、启动、暂停、迁移、销毁等操作。作为计算资源单位,它屏蔽 Hypervisor(虚拟机监控程序 )差异,让上层无需关注底层虚拟化技术实现,默认用 KVM(基于内核的虚拟机),也支持其他虚拟化技术。还能横向扩展,通过增加计算节点,轻松提升整体计算能力,应对业务增长。
- 应用场景:为各类业务系统提供虚拟机实例,比如企业搭建测试环境、部署 Web 应用服务器等,按需快速创建不同配置的虚拟机。
网络服务(Network - Neutron)
- 功能:承担虚拟网络管理职责,为虚拟机实例构建网络拓扑,实现租户(比如不同企业用户、企业内不同部门 )专属网络。租户可自定义网络结构(如子网、路由器、安全组等 ),且各租户网络隔离,互不干扰,保障网络环境安全与灵活。
- 应用场景:企业多部门共用 OpenStack 云平台时,各部门按需求搭建独立网络,开发部门测试环境网络、财务部门业务系统网络,既共享资源又保障数据安全。
身份认证服务(Identity - Keystone)
- 功能:类似 LDAP(轻量级目录访问协议 )服务,是 OpenStack 的 “门禁系统”。对用户、租户、角色、服务进行认证和授权,验证用户身份合法性,依据用户角色(如管理员、普通用户 )赋予不同操作权限,支持多种认证机制(如密码认证、令牌认证等 ),保障平台资源安全访问。
- 应用场景:企业员工访问云平台资源,管理员可创建、删除用户,分配角色,控制普通员工只能访问自己业务相关虚拟机、存储等资源,管理员能进行系统配置、资源分配等操作。
控制面板服务(Dashboard - Horizon)
- 功能:提供 Web 图形化管理界面,是用户与 OpenStack 底层服务交互的 “窗口”。用户无需通过命令行,就能直观操作、管理 OpenStack 资源,像创建虚拟机、配置网络、查看资源使用情况等,降低使用门槛,提升运维效率。
- 应用场景:企业运维人员日常管理云平台,通过浏览器登录 Horizon,快速查看各服务状态、资源占用,进行简单的资源调度和配置调整。
镜像服务(Image Service - Glance)
- 功能:管理虚拟机镜像模板,把制作好的操作系统(含预装软件等 )制作为镜像,创建虚拟机时直接调用。支持多种镜像格式(如 QCOW2、RAW 等 ),方便用户根据需求选择,加速虚拟机部署,统一镜像管理也利于版本控制和维护。
- 应用场景:企业标准化部署业务系统,把装好操作系统、中间件、业务程序的环境做成镜像,新业务需求时,基于镜像快速创建一致环境的虚拟机,减少重复部署工作。
块存储服务(Block Storage - Cinder)
- 功能:为运行中的虚拟机实例提供持久块存储,像给虚拟机挂载硬盘。可灵活扩展存储容量,按需付费,支持多种后端存储(如本地存储、SAN、NAS 等 ),满足不同性能、容量需求,保障数据持久化存储,虚拟机重启、迁移等不丢失块存储数据。
- 应用场景:数据库业务部署在虚拟机上,需可靠持久存储保存数据,用 Cinder 为数据库虚拟机挂载块存储,保障数据安全,且随业务增长,灵活扩容存储。
对象存储服务(Object Storage - Swift)
- 功能:为 OpenStack 提供基于云的弹性存储,适合存储非结构化数据(如图片、视频、文档等 )。采用分布式架构,支持集群无单点故障,数据冗余存储,保障高可用性和数据安全,能根据需求自动扩展存储容量,应对海量数据存储场景。
- 应用场景:互联网企业存储用户上传的图片、视频等资源,利用 Swift 弹性、高可用特性,保障用户访问,且数据量大时自动扩容,无需人工干预。
计量服务(Telemetry - Ceilometer)
- 功能:作为数据资源计量、监控和控制的集中来源,收集 OpenStack 各服务资源使用数据(如虚拟机 CPU 使用率、存储使用量等 ),为用户提供记账依据,也辅助进行资源监控、优化,比如根据资源使用情况调整资源分配、发现异常资源占用等。
- 应用场景:云服务提供商按资源使用量计费,Ceilometer 收集用户资源使用数据,生成账单;企业内部云平台,运维人员通过其监控资源,优化资源配置,降低成本。
二、创建云机
1、登录
修改密码:
2、创建网络
2.1、用admin身份创建public网络( 删除路由、删除网络)
2.2、创建private网络
2.3、创建路由
2.4、用demo身份为路由器添加私有接口
3、创建镜像
4、创建实例
详情
源
实例类型
网络
安全组
配置
#!/bin/bash
# 给 root 用户设置密码,通过 Here Document(EOF 作为输入结束标记)的方式,
# 两次输入 aptech 分别作为新密码和确认密码
passwd root<<EOF
aptech
aptech
EOF
# 给 centos 用户设置密码,同样用 Here Document 方式,两次输入 aptech
passwd centos<<EOF
aptech
aptech
EOF
# 使用 sed 命令修改 SSH 服务配置文件 /etc/ssh/sshd_config ,
# 将包含 "#PermitRootLogin yes" 的行(去掉注释并确保值为 yes ),
# 这里实际替换逻辑有点冗余,原行如果是 #PermitRootLogin yes ,替换后还是 PermitRootLogin yes ,
# 目的一般是确保开启 root 用户通过 SSH 登录的功能(去掉可能存在的注释并设为允许)
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
# 使用 sed 命令修改 /etc/ssh/sshd_config ,
# 将 "PasswordAuthentication no" 替换为 "PasswordAuthentication yes" ,
# 开启 SSH 基于密码的认证方式,这样客户端可以用密码登录服务器
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
# 向 /etc/ssh/sshd_config 文件末尾追加 "UseDNS no" 配置,
# 关闭 SSH 登录时的 DNS 反向解析,可加快 SSH 登录验证速度
echo "UseDNS no" >> /etc/ssh/sshd_config
##重启服务##
systemctl restart sshd
5、绑定浮动IP(做DNAT转换)
5.1、分配
5.2、关联
6、添加规则
6.1、添加ICMP规则
ping 192.168.10.248
6.2、添加ssh规则
7、远程登录
7.1、远程登录1:无密码登录
ssh 192.168.10.248
aptech
#无密码登录
ssh-copy-id 192.168.10.248
7.2、远程登:2:创建秘钥对
(1)创建密钥对
“项目”→“计算”→“密钥对”-->创建密钥对(秘钥名称为my-auth,秘钥类型为SSH秘钥)
创建成功后会自动下载到本地
(2)在宿主机上创建 centos用户并设置权限
useradd centos
mkdir /home/centos/.ssh
cd /home/centos/.ssh/
mv my-auth.pem id_rsa
chmod 700 /home/centos/.ssh
chown -R centos.centos /home/centos/.ssh
chmod 600 /home/centos/.ssh/id_rsa