设为首页 收藏本站
查看: 922|回复: 0

[经验分享] 【openstack N版】——创建云主机

[复制链接]

尚未签到

发表于 2017-6-26 11:20:22 | 显示全部楼层 |阅读模式
一.启动实例

1.1 已准备服务介绍


  • MySql:为各个服务提供数据存储。
  • RabbitMQ:为各个服务之间通信提供交通枢纽。
  • keystone:为各个服务之间通信提供认证和服务注册。
  • Glance:为虚拟机提供镜像管理。
  • Nova:为虚拟机提供计算资源。
  • Neutron:为虚拟机提供网络资源。

1.2 网络(flat)

1.2.1创建虚拟网络



#share 允许所有项目使用虚拟网络
[iyunv@linux-node1 ~]# openstack network create  --share \
--provider-physical-network public \
--provider-network-type flat public
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2017-03-01T03:10:38Z                 |
| description               |                                      |
| headers                   |                                      |
| id                        | 0cdd6694-d53d-4f85-b04a-bc3b6dfa6cbc |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| mtu                       | 1500                                 |
| name                      | public                               |
| port_security_enabled     | True                                 |
| project_id                | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| project_id                | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| provider:network_type     | flat                                 |
| provider:physical_network | public                               |
| provider:segmentation_id  | None                                 |
| revision_number           | 3                                    |
| router:external           | Internal                             |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tags                      | []                                   |
| updated_at                | 2017-03-01T03:10:38Z                 |
+---------------------------+--------------------------------------+
1.2.2查看已创建网络



#新版本命令
[iyunv@linux-node1 ~]# openstack network list
#老版本命令
[iyunv@linux-node1 ~]# neutron net-list
#结果都是一样的
+--------------------------------------+--------+---------+
| ID                                   | Name   | Subnets |
+--------------------------------------+--------+---------+
| 0cdd6694-d53d-4f85-b04a-bc3b6dfa6cbc | public |         |
+--------------------------------------+--------+---------+
1.2.3创建子网





1.2.4检查子网



#新版本命令
[iyunv@linux-node1 ~]# openstack subnet list
+--------------------------------------+---------------+--------------------------------------+-----------------+
| ID                                   | Name          | Network                              | Subnet          |
+--------------------------------------+---------------+--------------------------------------+-----------------+
| 3b307841-211f-4c8e-91f5-a9f051bb1248 | public-subnet | 0cdd6694-d53d-4f85-b04a-bc3b6dfa6cbc | 192.168.56.0/24 |
+--------------------------------------+---------------+--------------------------------------+-----------------+
#老版本命令
[iyunv@linux-node1 ~]# neutron subnet-list
+--------------------------------------+---------------+-----------------+------------------------------------------------------+
| id                                   | name          | cidr            | allocation_pools                                     |
+--------------------------------------+---------------+-----------------+------------------------------------------------------+
| 3b307841-211f-4c8e-91f5-a9f051bb1248 | public-subnet | 192.168.56.0/24 | {"start": "192.168.56.100", "end": "192.168.56.200"} |
+--------------------------------------+---------------+-----------------+------------------------------------------------------+
1.3创建云主机类型



#先创建一个小的云主机类型,给官方提供镜像做测试
[iyunv@linux-node1 ~]# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
#注解
id:主机类型ID
vcpus:虚拟cpu数量
ram:虚拟内存大小(MB)
disk:虚拟磁盘大小(GB)
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    |
| properties                 |         |
| ram                        | 64      |
| rxtx_factor                | 1.0     |
| swap                       |         |
| vcpus                      | 1       |
+----------------------------+---------+
1.3.1查看云主机类型



[iyunv@linux-node1 ~]# openstack flavor list
+----+---------+-----+------+-----------+-------+-----------+
| ID | Name    | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+---------+-----+------+-----------+-------+-----------+
| 0  | m1.nano |  64 |    1 |         0 |     1 | True      |
+----+---------+-----+------+-----------+-------+-----------+
1.4创建秘钥对



#创建ssh的秘钥对
[iyunv@linux-node1 ~]# ssh-keygen -q -N ""
#直接敲回车
Enter file in which to save the key (/root/.ssh/id_rsa):
#用openstack使用此秘钥对
[iyunv@linux-node1 ~]# openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| fingerprint | f9:81:41:cc:48:f0:69:37:34:a6:52:08:6f:60:28:14 |
| name        | mykey                                           |
| user_id     | 45b086bdc6b746c5b0bfd62f779fe6a5                |
+-------------+-------------------------------------------------+
1.4.1查看键值对



[iyunv@linux-node1 ~]#  openstack keypair list
+-------+-------------------------------------------------+
| Name  | Fingerprint                                     |
+-------+-------------------------------------------------+
| mykey | f9:81:41:cc:48:f0:69:37:34:a6:52:08:6f:60:28:14 |
+-------+-------------------------------------------------+
1.5创建安全组规则



#开启icmp协议,允许ping
[iyunv@linux-node1 ~]# openstack security group rule create --proto icmp default
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| created_at        | 2017-03-01T03:49:22Z                 |
| description       |                                      |
| direction         | ingress                              |
| ethertype         | IPv4                                 |
| headers           |                                      |
| id                | 044c66be-4db9-4f8c-8b6f-59c02c0c962c |
| port_range_max    | None                                 |
| port_range_min    | None                                 |
| project_id        | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| project_id        | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| protocol          | icmp                                 |
| remote_group_id   | None                                 |
| remote_ip_prefix  | 0.0.0.0/0                            |
| revision_number   | 1                                    |
| security_group_id | a9c0f076-3e8a-4344-ad7b-e94b51798116 |
| updated_at        | 2017-03-01T03:49:22Z                 |
+-------------------+--------------------------------------+
#开启22端口,允许ssh
[iyunv@linux-node1 ~]# openstack security group rule create --proto tcp --dst-port 22 default
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| created_at        | 2017-03-01T03:50:33Z                 |
| description       |                                      |
| direction         | ingress                              |
| ethertype         | IPv4                                 |
| headers           |                                      |
| id                | 6b48884c-dfc5-444c-8fb2-4ec157945e4e |
| port_range_max    | 22                                   |
| port_range_min    | 22                                   |
| project_id        | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| project_id        | d24a61dd3ecb43cb9e8a5f6539c6a2bb     |
| protocol          | tcp                                  |
| remote_group_id   | None                                 |
| remote_ip_prefix  | 0.0.0.0/0                            |
| revision_number   | 1                                    |
| security_group_id | a9c0f076-3e8a-4344-ad7b-e94b51798116 |
| updated_at        | 2017-03-01T03:50:33Z                 |
+-------------------+--------------------------------------+
1.5.1查看安全组规则



[iyunv@linux-node1 ~]# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+
| ID                                   | Name    | Description            | Project                          |
+--------------------------------------+---------+------------------------+----------------------------------+
| a9c0f076-3e8a-4344-ad7b-e94b51798116 | default | Default security group | d24a61dd3ecb43cb9e8a5f6539c6a2bb |
+--------------------------------------+---------+------------------------+----------------------------------+
1.6启动虚拟机



#启动之前首先要查看网络ID并记下
[iyunv@linux-node1 ~]# openstack network list
+--------------------------------------+--------+--------------------------------------+
| ID                                   | Name   | Subnets                              |
+--------------------------------------+--------+--------------------------------------+
| 0cdd6694-d53d-4f85-b04a-bc3b6dfa6cbc | public | 3b307841-211f-4c8e-91f5-a9f051bb1248 |
+--------------------------------------+--------+--------------------------------------+
#创建虚拟机,并启动
[iyunv@linux-node1 ~]# openstack server create --flavor m1.nano --image cirros \
    --nic net-id=0cdd6694-d53d-4f85-b04a-bc3b6dfa6cbc --security-group default \
    --key-name mykey demo-instance
#注:如果只有一个网络,则不需要填写net-id,openstack会默认选择
#注解
flavor:云主机类型名称
image:镜像名称
nic net-id:网络ID
security-group:安全组
key-name:秘钥对
demo-instance:云主机名称
1.6.1查看云主机



[iyunv@linux-node1 ~]# openstack server list
+--------------------------------------+---------------+--------+-----------------------+------------+
| ID                                   | Name          | Status | Networks              | Image Name |
+--------------------------------------+---------------+--------+-----------------------+------------+
| 24202ab8-9f13-4555-b8e3-6ff799223e67 | demo-instance | ACTIVE | public=192.168.56.110 | cirros     |
+--------------------------------------+---------------+--------+-----------------------+------------+
1.7获取VNC的url



[iyunv@linux-node1 ~]# openstack console url show demo-instance
+-------+------------------------------------------------------------------------------------+
| Field | Value                                                                              |
+-------+------------------------------------------------------------------------------------+
| type  | novnc                                                                              |
| url   | http://192.168.56.11:6080/vnc_auto.html?token=844e8352-a2ca-4c3f-8690-753529d59b80 |
+-------+------------------------------------------------------------------------------------+
1.71访问VNC的url
  打开浏览器输入:http://192.168.56.11:6080/vnc_auto.html?token=844e8352-a2ca-4c3f-8690-753529d59b80即可访问
DSC0000.png

  注:以上操作,完全可以在dashboard上创建

二.创建云主机流程介绍

2.1创建云主机步骤
  第一步:dashboard或者client带着用户名和密码请求keystone服务
  第二步:keystone服务验证用户名和密码,验证成功后返回token给dashboard或者client
  第三步:dashboard或者client带着keystone服务返回的token请求nova-api
  第四步:nova-api带着token访问keystone服务验证token是否正确
  第五步:keystone验证token正确后,返回结果给nova-api
  第六步:nova-api将要创建的虚拟机资源信息写入DB
  第七步:nova-api将要创建虚拟机的请求写入rabbitMQ消息队列,建立沟通枢纽
  第八步:nova-scheduler发现消息队列中的创建虚拟机信息后访问DB
  第九步:nova-scheduler从DB中获取到创建虚拟机所需资源并且计算,调度,决定将虚拟机创建在哪个计算节点上
  第十步:将计算结果返回给消息队列
  第十一步:nova-compute从消息队列中获取nova-scheduler计算的结果
  第十二步:nova-compute通过nova-conductor(中间件)与DB交互来获取要创建的虚拟机所需要的资源信息
  第十三步:nova-compute带着token去请求glance获取镜像资源,glance会将token交给keystone服务验证
  第十四步:如果token验证成功,则将glance的镜像资源交给nova-compute
  第十五步:nova-compute带着token去请求neutron获取网络资源,neutron会将token交给keystone服务验证
  第十六步:如果token验证成功,则将neutron的网络资源交给nova-compute
  第十七步:nova-compute带着token去请求cinder获取存储资源,cinder会将token交给keystone服务验证
  第十八步:如果token验证成功,则将cinder的存储资源交给nova-compute
  所有步骤都操作成功后,nova-compute就会将虚拟机创建在scheduler计算后的节点上。

2.2创建云主机流程图
DSC0001.jpg


【开源是一种精神,分享是一种美德】

  — By GoodCook

  — 笔者QQ:253097001

  — 欢迎大家随时来交流

  —原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388179-1-1.html 上篇帖子: OpenStack (3) 下篇帖子: 外网访问原理分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表