ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenStack(三)——启动实例与 Dashboard 可视化操作

OpenStack(三)——启动实例与 Dashboard 可视化操作 文章目录启动一个实例创建提供者网络创建m1.nano规格的主机生成一个键值对增加安全组规则启动实例创建实例使用虚拟控制台访问实例DashboardOpenStack 云主机创建完整流程图解安装和配置完成安装验证操作图形操作验证启动一个实例创建提供者网络在控制节点上加载admin凭证来获取管理员能执行的命令访问权限[rootcontroller ~]# . admin-openrc创建网络[rootcontroller ~]# neutron net-create --shared --provider:physical_network provider --provider:network_type flat providerCreated a new network: -----------------------------------------------------------------|Field|Value|-----------------------------------------------------------------|admin_state_up|True||availability_zone_hints|||availability_zones|||created_at|2026-08-25T07:57:37||description|||id|f8441843-0847-48b9-9339-971ff707965c||ipv4_address_scope|||ipv6_address_scope|||mtu|1500||name|provider||port_security_enabled|True||provider:network_type|flat||provider:physical_network|provider||provider:segmentation_id|||router:external|False||shared|True||status|ACTIVE||subnets|||tags|||tenant_id|d2dd5de567bc4214b2e42a3e0236d7e6||updated_at|2026-08-25T07:57:37|-----------------------------------------------------------------在网络上创建一个子网[rootcontroller ~]# neutron subnet-create --name provider --allocation-pool start192.168.117.101,end192.168.117.120 --dns-nameserver 114.114.114.114 --gateway 192.168.117.2 provider 192.168.117.0/24Created a new subnet: ---------------------------------------------------------------------------|Field|Value|---------------------------------------------------------------------------|allocation_pools|{start:192.168.117.101,end:192.168.117.120}||cidr|192.168.117.0/24||created_at|2026-08-25T08:01:03||description|||dns_nameservers|114.114.114.114||enable_dhcp|True||gateway_ip|192.168.117.2||host_routes|||id|5f306a7b-50d0-4177-87e1-6e144595904d||ip_version|4||ipv6_address_mode|||ipv6_ra_mode|||name|provider||network_id|f8441843-0847-48b9-9339-971ff707965c||subnetpool_id|||tenant_id|d2dd5de567bc4214b2e42a3e0236d7e6||updated_at|2026-08-25T08:01:03|---------------------------------------------------------------------------创建m1.nano规格的主机默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的我们推荐创建只需要64 MB的m1.nano规格的主机。若单纯为了测试的目的请使用m1.nano规格的主机来加载CirrOS镜像[rootcontroller ~]# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano-------------------------------------|Field|Value|-------------------------------------|OS-FLV-DISABLED:disabled|False||OS-FLV-EXT-DATA:ephemeral|0||disk|1||id|0||name|m1.nano||os-flavor-access:is_public|True||ram|64||rxtx_factor|1.0||swap|||vcpus|1|-------------------------------------生成一个键值对大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前你必须添加一个公共密钥到计算服务。导入租户demo的凭证[rootcontroller ~]# . demo-openrc生成和添加秘钥对[rootcontroller ~]# ssh-keygen -q -N Enterfileinwhichto save the key(/root/.ssh/id_rsa):[rootcontroller ~]# openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey--------------------------------------------------------------|Field|Value|--------------------------------------------------------------|fingerprint|0c:50:46:83:1a:03:16:3a:a8:fa:09:82:8c:2a:57:69||name|mykey||user_id|d73a867b50484498b4131de542bbfc99|--------------------------------------------------------------验证公钥的添加[rootcontroller ~]# openstack keypair list--------------------------------------------------------|Name|Fingerprint|--------------------------------------------------------|mykey|0c:50:46:83:1a:03:16:3a:a8:fa:09:82:8c:2a:57:69|--------------------------------------------------------增加安全组规则添加规则到default安全组。允许ICMP(ping)[rootcontroller ~]# openstack security group rule create --proto icmp default-------------------------------------------------------------|Field|Value|-------------------------------------------------------------|id|cd88883a-9c53-4a39-97cc-4d886185862e||ip_protocol|icmp||ip_range|0.0.0.0/0||parent_group_id|2c119c4a-263d-4d81-a2e1-44dccfc95b4d||port_range|||remote_security_group||-------------------------------------------------------------允许安全 shell (SSH) 的访问[rootcontroller ~]# openstack security group rule create --proto tcp --dst-port 22 default-------------------------------------------------------------|Field|Value|-------------------------------------------------------------|id|008621c5-bcba-466d-919c-c7b058fb24ce||ip_protocol|tcp||ip_range|0.0.0.0/0||parent_group_id|2c119c4a-263d-4d81-a2e1-44dccfc95b4d||port_range|22:22||remote_security_group||-------------------------------------------------------------启动实例在控制节点上获得admin凭证来获取只有管理员能执行的命令的访问权限[rootcontroller ~]# . demo-openrc一个实例指定了虚拟机资源的大致分配包括处理器、内存和存储。列出可用类型[rootcontroller ~]# openstack flavor list---------------------------------------------------------|ID|Name|RAM|Disk|Ephemeral|VCPUs|Is Public|---------------------------------------------------------|0|m1.nano|64|1|0|1|True||1|m1.tiny|512|1|0|1|True||2|m1.small|2048|20|0|1|True||3|m1.medium|4096|40|0|2|True||4|m1.large|8192|80|0|4|True||5|m1.xlarge|16384|160|0|8|True|---------------------------------------------------------这个实例使用m1.tiny规格的主机。如果你创建了m1.nano这种主机规格使用m1.nano来代替m1.tiny。也可以以 ID 引用类型。列出可用镜像[rootcontroller ~]# openstack image list------------------------------------------------------|ID|Name|Status|------------------------------------------------------|c456e55d-a7a3-4d04-958c-e640755b8708|cirros|active|------------------------------------------------------这个实例使用cirros镜像。列出可用网络[rootcontroller ~]# openstack network list----------------------------------------------------------------------------|ID|Name|Subnets|----------------------------------------------------------------------------|f8441843-0847-48b9-9339-971ff70|provider|5f306a7b-||7965c||50d0-4177-87e1-6e144595904d|----------------------------------------------------------------------------这个实例使用provider公有网络。 你必须使用ID而不是名称才可以使用这个网络。列出可用的安全组[rootcontroller ~]# openstack security group list---------------------------------------------------------------------------|ID|Name|Description|Project|---------------------------------------------------------------------------|2c119c4a-263d-4d81-a|default|Default security|6801efeaf4bb4c76a278||2e1-44dccfc95b4d||group|7640a342f5bd|---------------------------------------------------------------------------这个实例使用default安全组。创建实例启动实例[rootcontroller ~]# openstack server create --flavor m1.tiny --image cirros --nic net-idf8441843-0847-48b9-9339-971ff707965c --security-group default --key-name mykey provider-instance-----------------------------------------------------------------------------|Field|Value|-----------------------------------------------------------------------------|OS-DCF:diskConfig|MANUAL||OS-EXT-AZ:availability_zone|||OS-EXT-STS:power_state|0||OS-EXT-STS:task_state|scheduling||OS-EXT-STS:vm_state|building||OS-SRV-USG:launched_at|None||OS-SRV-USG:terminated_at|None||accessIPv4|||accessIPv6|||addresses|||adminPass|cNTBw9PjGgtp||config_drive|||created|2026-08-25T09:10:12Z||flavor|m1.tiny(1)||hostId|||id|99cc0689-9f3e-475f-8cd2-dd6df9342483||image|cirros(c456e55d-a7a3-4d04-958c-|||e640755b8708)||key_name|mykey||name|provider-instance||os-extended-volumes:volumes_attached|[]||progress|0||project_id|6801efeaf4bb4c76a2787640a342f5bd||properties|||security_groups|[{uname:udefault}]||status|BUILD||updated|2026-08-25T09:10:12Z||user_id|d73a867b50484498b4131de542bbfc99|-----------------------------------------------------------------------------检查实例的状态[rootcontroller ~]# openstack server list------------------------------------------------------------------------|ID|Name|Status|Networks|------------------------------------------------------------------------|99cc0689-9f3e-475f-|provider-instance|ACTIVE|provider192.168.117.||8cd2-dd6df9342483|||103|------------------------------------------------------------------------使用虚拟控制台访问实例获取你实例的Virtual Network Computing (VNC)会话URL并从web浏览器访问它[rootcontroller ~]# openstack console url show provider-instance-----------------------------------------------------------------------------|Field|Value|-----------------------------------------------------------------------------|type|novnc||url|http://controller:6080/vnc_auto.html?token8afe6f3e-56cd-|||41e9-acb4-6edf407c2f2c|-----------------------------------------------------------------------------访问http://192.168.117.131:6080/vnc_auto.html?token8afe6f3e-56cd-41e9-acb4-6edf407c2f2c登录即可使用DashboardOpenStack 云主机创建完整流程图解​ 整体参与组件Keystone认证、Nova计算、Glance镜像、Neutron网络、Cinder块存储、MQ 消息队列、数据库 DB、Hypervisor 虚拟化层客户端CLI/ Horizon 网页控制台。​ MQ消息队列RabbitMQ各个服务之间异步消息通信DB各组件自己的数据库存业务数据。步骤拆解按图上数字用户通过Horizon网页 / openstack cli命令行发起创建云主机请求。向Keystone做身份认证校验账号、权限、获取 token 令牌。携带 token把创建实例请求发给nova‑api。nova‑api 调用 keystone校验 token 是否合法。keystone 返回校验结果。nova‑api 访问nova 数据库写入实例初始数据库记录实例状态变为BUILD。nova‑api 向 MQ 发送消息告知需要调度一台虚拟机。MQ 把消息转发给nova‑scheduler调度器。nova‑scheduler 从 MQ 接收任务。nova‑scheduler 查询 nova 数据库获取可用 compute 节点信息、资源CPU 内存。scheduler 执行调度算法过滤 权重选出最合适的nova‑compute 计算节点。scheduler 通过 MQ 下发创建虚拟机的消息给选中的 nova‑compute。目标节点nova‑compute从 MQ 收到创建虚拟机任务。并行调用其他组件Glance 镜像、Neutron 网络、Cinder 存储nova‑compute 调用glance‑api请求获取虚拟机镜像。glance 组件查询 glance 数据库。glance 返回镜像nova‑compute 下载镜像到本地。nova‑compute 调用neutron‑server申请网络资源port、IP 地址。neutron 服务分配端口、IP写入 neutron 数据库通过 agent 完成网络配置。返回网络配置信息给 nova‑compute。如果创建时挂载云硬盘nova‑compute 调用cinder‑api申请块存储卷cinder 完成卷创建。14/19nova‑compute 会和nova‑conductor交互不直接访问 nova 数据库nova 禁止 compute 直连 DB由 conductor 代理读写 DB16nova‑compute 发请求给 MQ17MQ 转发给 nova‑conductor15/18conductor 读写 nova 数据库结果回传给 nova‑compute26nova‑compute 拿到镜像、网络、存储全部资源后调用底层HypervisorKVM/QEMU真正生成虚拟机。 28把网络、存储设备挂载给虚拟机。 29Hypervisor 启动虚拟机。虚拟机启动完成后更新 nova 数据库实例状态由BUILD→ACTIVE用户就看到虚拟机运行。各组件角色总结Keystone统一认证鉴权所有服务第一步都要过它。Nova计算核心nova‑api对外入口接收用户请求nova‑scheduler选择哪个计算节点跑虚拟机nova‑conductor代理访问数据库compute 不能直连 DBnova‑compute计算节点真正干活调用虚拟化 Hypervisor 创建 VMGlance镜像服务提供操作系统镜像。Neutron网络服务分配 IP、端口、网桥给虚拟机提供网络。Cinder块存储提供云硬盘可选不挂载盘可以不走。MQ 消息队列 (RabbitMQ)服务之间解耦异步传递任务消息。DB每个组件独立数据库持久化业务数据。Hypervisor底层虚拟化KVM真正创建运行虚拟机。安装和配置安装软件包[rootcontroller ~]# yum install openstack-dashboard编辑文件/etc/openstack-dashboard/local_settings[rootcontroller ~]# vim /etc/openstack-dashboard/local_settingsOPENSTACK_HOSTcontroller#在controller节点上配置仪表盘以使用OpenStack服务ALLOWED_HOSTS[*,]#允许所有主机访问仪表板SESSION_ENGINEdjango.contrib.sessions.backends.cache#配置memcached会话存储服务CACHES{default:{BACKEND:django.core.cache.backends.memcached.MemcachedCache,LOCATION:controller:11211,}}将其他的会话存储服务配置注释。 OPENSTACK_KEYSTONE_URLhttp://%s:5000/v3% OPENSTACK_HOST#启用第3版认证APIOPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORTTrue#启用对域的支持OPENSTACK_API_VERSIONS{#配置API版本identity:3,image:2,volume:2,}OPENSTACK_KEYSTONE_DEFAULT_DOMAINdefault#通过仪表盘创建用户时的默认域配置为defaultOPENSTACK_KEYSTONE_DEFAULT_ROLEuser#通过仪表盘创建的用户默认角色配置为userOPENSTACK_NEUTRON_NETWORK{#如果您选择网络参数1禁用支持3层网络服务...enable_router:False,enable_quotas:False,enable_distributed_router:False,enable_ha_router:False,enable_lb:False,enable_firewall:False,enable_vpn:False,enable_fip_topology_check:False,}TIME_ZONEAsia/Shanghai#可以选择性地配置时区完成安装重启web服务器以及会话存储服务[rootcontroller ~]# systemctl restart httpd.service memcached.service验证操作在浏览器中输入 http://192.168.117.131/dashboard/访问仪表盘。验证使用admin或者demo用户凭证和default域凭证。图形操作使用demo用户删除云主机切换admin用户删除子网记住MTU和供应商网络之后创建时要用到删除admin网络创建网络创建子网创建云主机类型切换demo用户创建云主机然后启动示例验证网络拓扑皆可远程免密登陆批量创建的虚拟机可以连外网
返回列表