OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录


在前几篇文章中,完成了 OpenStack 的部署。本篇将聚焦于基础使用,快速熟悉 OpenStack Dashboard 上的主要功能模块。

1. 镜像(Image)

镜像是虚拟机的操作系统模板,用于快速创建实例,是云平台中的"操作系统安装盘"。

添加镜像

点击 创建镜像

点击下载 CentOS-7-x86_640GenericCloud-2009.qcow2(官方)

又或到 CentOS官方云镜像 下载

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e599639f89cd4c47a4c657d1141a20f8.png

等同于在 Controller 节点上执行如下命令:

bash 复制代码
openstack image create --file CentOS-7-x86_64-GenericCloud-2009.qcow2 --disk-format qcow2 --container-format bare --public centos7qcow2

查看镜像

刷新页面即可查看

从网页上传非常久,建议拉到 Controller 节点再使用命令上传

删除镜像

不细讲了,点击就是删除

2. 卷(Volume)

卷是提供给实例的动态存储设备,用于保存数据并支持独立管理,就像虚拟机的"硬盘"。

创建卷

查看卷

删除卷

不细讲了,点击就是删除

3. 网络(虚拟网络)

虚拟网络是为实例提供通信和联网能力的桥梁,负责管理内外网连接及安全策略。

创建网络

管理员 -> 网络 -> 网络 -> 创建网络

等同于在 Controller 节点上执行如下命令:

bash 复制代码
# 网络
openstack network create --share --external --provider-physical-network provider --provider-network-type flat vlr-net
# 子网
openstack subnet create --network vlr-net --allocation-pool start=192.168.62.100,end=192.168.62.200 --dns-nameserver 114.114.114.114 --gateway 192.168.62.2 --subnet-range 192.168.62.0/24 subnet

查看网络

删除网络

不细讲了,点击就是删除

4. 实例类型

实例类型是定义虚拟机规格的模板,用于指定实例的CPU、内存和磁盘资源配置,帮助管理员灵活分配计算资源。

创建实例类型

管理员 -> 计算 -> 实例类型 -> 创建实例类型

等同于在 Controller 节点上执行如下命令:

bash 复制代码
openstack flavor create --id auto --vcpus 1 --ram 1024 --disk 10 mini

查看实例类型

删除实例类型

不细讲了,点击就是删除

4. 密钥对(Key Pair)

密钥对是实例的安全认证工具,用于通过 SSH 登录保护虚拟机,替代传统密码。

公钥用于分发给他人,私钥则由自己保管。当实现免密登录时,自己连接到目标主机时,目标主机会用存储的公钥验证你的私钥,匹配成功即可完成免密登录。

创建密钥对

有两种方法:

  • ssh-keygen 命令创建并上传

    bash 复制代码
    # 按 y
      ssh-keygen -t ed25519 -b 2048 -N ""

~/.ssh/ 目录下会生成 id_ed25519id_ed25519.pub 两个文件(根据加密方式命名的),将 id_ed25519.pub 上传到 OpenStack 即可,项目->计算->密钥对->导入密钥

  • Dashboard 创建密钥对
    项目->计算->密钥对->创建密钥->密钥类型(SSH密钥)
    会生成一个后缀为 pem 的文件提供下载
    这个 pem 文件和私钥一样可用于验证公钥,但不是私钥

4. 安全组(Security Group)

安全组是虚拟防火墙规则的集合,用于定义实例的网络访问权限,通过控制入站和出站流量确保网络安全。

在默认安全组下追加以下规则:

4. 实例(Instance)

实例是通过镜像创建的虚拟机,用于运行应用或任务,是云平台的核心资源。

创建实例

管理员 -> 计算 -> 实例 -> 创建实例

查看实例

连接实例

  1. ssh 免密连接
bash 复制代码
ssh -i '密钥.pem' centos@192.168.62.107
  1. 宿主机直连
    进入 compute 节点:
bash 复制代码
# 查看虚拟机编号
virsh list
# 进入虚拟机(如:12)
virsh console 12
5. 密码连接(失败)
  1. ssh 密码直连
    部分官方 .qcow2 镜像支持通过脚本修改密码
    在创建新虚拟机时,配置->定制化脚本,输入如下:

    #cloud-config
    ssh_pwauth: True
    password: lian
    chpasswd:
    list: |
    root:lian
    expire: False

看网上的说法,似乎qemu是不会生效,kvm虚拟化才会生效,所以无法修改。

  1. 控制台(失败)
    点击实例名字进去控制台后,发现报错

    Something went wrong, connection is closed

查看日志:

bash 复制代码
tail -f /var/log/nova/nova-novncproxy.log
code 400, message Client must support 'binary' or 'base64' protocol

修改内核协议解决:

bash 复制代码
vim /usr/share/novnc/core/websock.js
# 修改
    open(uri, protocols) {
        #this.attach(new WebSocket(uri, protocols));
        this.attach(new WebSocket(uri, ['binary','base64']));
    }

参考链接:

https://blog.csdn.net/sikoutang/article/details/138336726

https://blog.csdn.net/qq_41786090/article/details/131366053

https://github.com/novnc/noVNC/issues/1276

https://techglimpse.com/openstack-novnc-code-400-base64-protocol-error/

然后控制台就进入到 loading 了,没日志,网上也没相同情况,就没办法处理,可能是 qemu 或者 Openstack 版本 又或者是 浏览器版本 原因。

连接卷

就是添加硬盘到虚拟机上的意思,如下:

重启后,使用 lsblk 命令查看会发现多一块硬盘

bash 复制代码
$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda     252:0    0  10G  0 disk
|-vda1  252:1    0  10G  0 part /
`-vda15 252:15   0   8M  0 part
vdb     252:16   0  10G  0 disk

删除实例

不细讲了,点击就是删除

注:

  1. 不确定是openstack版本问题还是浏览器问题, 创建实例 按钮老是消失,刷新+换浏览器+无痕模式 解决
  2. 用的是 qemu 虚拟化而不是 kvm,定制脚本 不会生效
  3. 曾在 debug 的时候将 compute 节点删了再加入,Dashboard 页面的 创建实例 按钮也会消失,通过 openstack server create 命令创建实例(运行失败),查看日志才知道说计算节点 compute 同名了,这里要注意一下

5. 快照(Snapshot)

快照是实例状态和数据的备份文件,用于恢复、模板制作或版本管理。

与 VMware WorkStation 、 VMware Vsphere 不同,这里快照拍完后,直接出现在 镜像那了,使用方式与镜像一样直接就创建虚拟机了,实例无法通过快照恢复,但能通过快照创建新的虚拟机。

总结

通过本文的介绍,大家完成了OpenStack基础资源的部署与管理,包括镜像、卷、网络、实例等,帮助大家对OpenStack的主要功能有了初步认识,并掌握了如何通过Dashboard和命令行进行常见操作。

相关推荐
感哥3 天前
OpenStack Cinder 创建卷
openstack
感哥3 天前
OpenStack Cinder 架构
openstack
感哥3 天前
OpenStack Nova Scheduler 计算节点选择机制
openstack
感哥6 天前
OpenStack Nova 创建虚拟机
openstack
感哥6 天前
OpenStack Glance(镜像)
openstack
感哥6 天前
OpenStack Keystone详解
openstack
安全菜鸟15 天前
传统方式部署OpenStack具体教程
openstack
哈里谢顿2 个月前
Ironic 中 Clean/deploy Step 延迟执行的原因分析
openstack
哈里谢顿2 个月前
ironic中为什么 IPMI Hardware Type 必须支持 IPMIManagement
openstack
哈里谢顿2 个月前
Ironic 中各个接口的作用详解
openstack