zoukankan      html  css  js  c++  java
  • 创建 OpenStack云主机(十一)

    创建过程

    1. 创建虚拟网络
    2. 创建m1.nano规格的主机(相等于定义虚拟机的硬件配置)
    3. 生成一个密钥对(openstack的原理是不使用密码连接,而是使用密钥对进行连接)
    4. 增加安全组规则(用iptables做的安全组)
    5. 启动一个实例(启动虚拟机有三种类型:1.命令CLI 2.api 3.Dashboard)实际上Dashboard也是通过api进行操作
    6. 虚拟网络分为提供者网络和私有网络,提供者网络就是跟主机在同一个网络里,私有网络自定义路由器等,跟主机不在一个网络

    提供者网络架构

    创建提供者网络

    • 控制节点操作,创建网络
    source /root/admin-openstack.sh
    neutron net-create --shared --provider:physical_network public --provider:network_type flat public-net
    

    命令格式:neutron net-create --shared(所有项目共享网络)  --provider:physical_network(物理网络) public(物理网络的名称) --provider:network_type(创建的网络类型为flat,单一扁平网络)flat public-net(自定义一个名称)

    补充知识点:上图中tenant_id 等于 project_id,查看项目列表如下图

    • 检查是否创建成功
    neutron net-list
    

    • 创建子网
    neutron subnet-create --name public-subnet 
    --allocation-pool start=192.168.137.100,end=192.168.137.200 
    --dns-nameserver 223.5.5.5 --gateway 192.168.137.2 
    public-net 192.168.137.0/24
    

    参数说明

    • neutron subnet-create 子网创建
    • --name (名称)
    • --allocation—pool 分配地址池
    • start=开始IP地址
    • end=结束IP地址
    • dns-nameserver DNS地址,233.5.5.5是阿里公共DNS地址
    • --gateway 网关
    • public-net 提供者的网络名称(要跟上面创建网络的名称对应起来)

    检查是否关联成功

    neutron net-list
    

    neutron subnet-list
    

    创建m1.nano规格的主机(自定义云主机规格)

           默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,我们推荐创建只需要64 MB的m1.nano规格的主机。若单纯为了测试的目的,请使用m1.nano规格的主机来加载CirrOS镜像。

    openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
    

    参数说明:

    • openstack flavor create 创建主机
    • --id 主机ID
    • --vcpus cpu数量
    • --ram 64(默认是MB,可以写成G)
    • --disk 磁盘(默认单位是G)

    查看创建结果

    openstack flavor list
    

    提示:1-5是系统默认的,0是刚才创建的

    创建密钥对

    大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前,必须添加一个公共密钥到计算服务。

    • 生成秘钥
    source /root/demo-openstack.sh
    ssh-keygen -q -N ""
    

    将密钥放在openstack上

    openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
    

    验证公钥的添加

    openstack keypair list
    

    增加安全组规则

           默认情况下, default安全组适用于所有实例并且包括拒绝远程访问实例的防火墙规则。对诸如CirrOS这样的Linux镜像,我们推荐至少允许ICMP (ping) 和安全shell(SSH)规则。

    • 允许 ICMP (ping)
    openstack security group rule create --proto icmp default
    

    • 允许安全 shell (SSH) 的访问
    openstack security group rule create --proto tcp --dst-port 22 default
    

    在公有网络上创建实例

    启动一台实例,必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。

    source /root/demo-openstack.sh
    
    • 列出云主机可用类型
    openstack flavor list
    

    • 列出可用镜像
    openstack image list
    

    • 列出可用的网络
    openstack network list
    

    备注:创建云主机网络的时候使用的不是名称,而是ID

    • 列出可用的安全组
    openstack security group list
    

    • 创建实例
    openstack server create --flavor m1.nano --image cirros 
    --nic net-id=cc9d7710-d82e-4109-9412-56ae02a18d7d --security-group default 
    --key-name mykey shhnwangjian-instance
    

    参数说明:

    • openstack server create 创建实例
    • --flavor 主机类型名称
    • --image 镜像名称
    • --nic net-id=网络ID
    • --security-group 安全组名称
    • --key-name key名称
    • 最后一个是自定义实例名称

    检查

    openstack server list

    验证能否ping通

    ssh连接测试,因为通过秘钥认证,不需要输入密码

    使用虚拟控制台访问实例

    openstack console url show shhnwangjian-instance
    

    可以复制上面URL地址,在浏览器访问

     

    异常排查

    如果无法创建虚拟机,我们需要查看控制节点和计算节点所有服务的日志,同时也要查看iptables、selinux、时间同步等

    grep 'ERROR' /var/log/nova/*
    grep 'ERROR' /var/log/neutron/*
    grep 'ERROR' /var/log/glance/*
    grep 'ERROR' /var/log/keystone/*
    

    检查

    source admin-openstack.sh
    nova service-list
    neutron agent-list
    nova image-list
  • 相关阅读:
    B-Tree(B树)原理及C++代码实现
    Select(快速选择顺序统计量)原理及C++代码实现
    BucketSort(桶排序)原理及C++代码实现
    RadixSort(基数排序)原理及C++代码实现
    CountingSort(计数排序)原理及C++代码实现
    面向对象之封装
    今日算法题
    面向对象之抽象类和接口
    面向对象之多态
    今日算法题
  • 原文地址:https://www.cnblogs.com/shhnwangjian/p/6363612.html
Copyright © 2011-2022 走看看