OpenStack Q版部署-启动实例

前言

本文创建必要的虚拟网络以支持启动实例。

一、简介

根据官方文档提供的创建实例的时候提供了两种网络,一种是provider,一种是self-service。
这两种的网络的区别就是,

  1. provider网络是从外网路由器的地址池中拿出来一部分地址自己来使用,这样就导致外界路由器的地址池变少了,我们创建provider使用的IP地址是不能在放到池子里面的。创建实例的时候分配到的地址就是外网路由器地址池中的地址,这样就可以直接连接外网了。

但是外网的地址池是有限度的,你这里只能是使用一部分,无法满足你创建大量虚机的请求,所以就有了self-service网络。

  1. self-server网络使用的是自己指定的网段,我们可以自己设置网段、开始地址和结束地址,都是可以自己指定的,IP地址随便划分,没有provider网络那种,需要参考外网路由地址池的范围,但是他是没法连接外网的,

但是我们有provider网络,我们可以指定provider网络为路由通过他来进行外网访问。

二、创建实例

1、创建网络

在启动实例之前,必须创建必要的虚拟网络基础设施。

provider网络

对于provider网络来说,实例使用通过第2层(桥接/切换)连接到物理网络基础设施的提供者(外部)网络。 该网络包括一个DHCP服务器,为实例提供IP地址。 管理员或其他特权用户必须创建此网络,因为它直接连接到物理网络基础设施。

创建provider网络的时候我们需要从外网的地址池中拿出来一部分,所以需要确定外网的地址池范围,从中找一段没有使用的就好,

在这里插入图片描述

source admin-openrc 
openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider

–share选项允许所有项目使用虚拟网络。
–external选项将虚拟网络定义为外部网络。
默认值是内部的。
-provider-physical-net work provider and -provider-net work-type flat 选项是我们在neutron服务配置文件中制定过的内容

在这里插入图片描述
命令模板:

openstack subnet create --network provider \
--allocation-pool start=START_IP_ADDRESS,end=END_IP_ADDRESS \
--dns-nameserver DNS_RESOLVER --gateway PROVIDER_NETWORK_GATEWAY \
--subnet-range PROVIDER_NETWORK_CIDR provider

用外网DHCP地址池网络地址替换PROVIDER_NETWORK_CIDR。
将START_IP_ADDRESS和END_IP_ADDRESS替换为要为实例分配的子网中范围的第一个和最后一个IP地址。 此范围不能包括任何现有的活动IP地址。

用DNS解析器的IP地址替换DNS_RESOLVER。 在大多数情况下,您可以从主机上的/etc/resolv.conf文件中使用一个。
将PROVIDER_NETWORK_GATEWAY替换为提供者网络上的网关IP地址,通常是.1IP地址。

openstack subnet create --network provider --allocation-pool start=192.168.223.10,end=192.168.223.30 --dns-nameserver 192.168.223.2 --gateway 192.168.223.2 --subnet-range 192.168.223.0/24 provider

在这里插入图片描述

self-service网络

如果选择了self-service,你还可以创建一个自助(私有)网络,通过NAT连接到物理网络基础设施。 该网络包括一个DHCP服务器,为实例提供IP地址。 这个网络上的实例可以自动访问外部网络,如Internet。 然而,从外部网络(如互联网)访问这个网络上的实例需要一个浮动的IP地址。 演示或其他非特权用户可以创建此网络,因为它只提供与演示项目中实例的连接。

openstack network create selfservice

在这里插入图片描述
命令示例:

openstack subnet create --network selfservice \
--dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \
--subnet-range SELFSERVICE_NETWORK_CIDR selfservice

用DNS解析器的IP地址替换DNS_RESOLVER。 在大多数情况下,您可以从主机上的/etc/resolv.conf文件中使用一个。

将SELFSERVICE_NETWORK_GATEWAY替换为您想在自助服务网络上使用的网关,通常是.1IP地址。

将SELFSERVICE_NETWORK_CIDR替换为您想在自助服务网络上使用的子网。 您可以使用任意值,

openstack subnet create --network selfservice --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 --subnet-range 172.16.1.0/24 selfservice

在这里插入图片描述

创建router

self-service网络使用通常执行双向NAT的虚拟路由器连接到provider网络。 每个路由器包含至少一个self-service网络上的接口和prov网络上的网关。 prov网络必须包括路由器:外部选项,以使self-service路由器能够使用它与Internet等外部网络连接。

管理员或其他特权用户必须在网络创建期间包含此选项或稍后添加它。在这种情况下,路由器:外部选项是通过在创建prov网络时使用-外部参数来设置的。

创建路由器——》在路由器上添加provider网络子网作为接口——》 在路由器上添加provider网络子网作为接口——》 在路由器上的self-service网络上设置网关,

source admin-openrc 
openstack router create router
openstack router add subnet router selfservice
openstack router set router --external-gateway provider

在这里插入图片描述

检查下网络创建是否正常:

列出网络名称空间。 您应该看到一个qrouter名称空间和两个qdhcp名称空间。

ip netns 

在这里插入图片描述
列出路由器上的端口,以确定提供者网络上的网关IP地址:

openstack port list --router router

在这里插入图片描述

ping -c3 192.168.223.15

在这里插入图片描述

在为您的环境创建适当的网络之后,您可以继续准备环境以启动实例。

2、创建flavor

最小的默认flavor每个实例消耗512MB内存。 对于包含小于4GB内存的计算节点的环境,我们建议创建每个实例只需要64MB的m1.nano flavor。 只使用这种flavor与CirrOS图像的测试目的。

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

在这里插入图片描述

3、 生成密钥对

大多数公有云支持公钥认证,而不是传统的密码认证。 在启动实例之前,必须向计算服务添加公钥。

生成密钥对并添加公钥——》 验证密钥对的添加,

ssh-keygen -q -N ""
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
openstack keypair list

在这里插入图片描述

4、增加安全组规则

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

默认安全组添加规则:

  1. 允许ICMP(ping):
openstack security group rule create --proto icmp default

在这里插入图片描述

  1. 允许安装shell(SSH)访问:
openstack security group rule create --proto tcp --dst-port 22 default

在这里插入图片描述

5、启动一个实例

确定实例选项

flavor指定包含处理器、内存和存储的虚拟资源分配配置文件——》 列出可用的安全组——》可用图像列表——》可用网络列表,

source admin-openrc 
openstack flavor list
openstack security group list
openstack image list
openstack network list

在这里插入图片描述

provider网络启动一个实例

要启动实例,至少必须指定flavor、glance名称、网络、安全组、密钥和实例名称。

openstack server create --flavor m1.nano --image cirros \
--nic net-id=PROVIDER_NET_ID --security-group default \
--key-name mykey provider-instance
 用provider网络的ID替换PROVIDER_NET_ID
source admin-openrc 
openstack server create --flavor m1.nano --image cirros --nic net-id=c4481ab2-2067-4e3d-b138-73802de650cb --security-group 539fd7bb-4e17-4b2d-b038-0567ddcd5f08 --key-name mykey provider

在这里插入图片描述
到现在为止,你的虚机只要能够成功创建时active状态的,那么你的OpenStack环境中安装的各个服务就是没有问题的,但是我们在controller上ping实例的地址是不同的,这是为什么?

openstack server list
ping 192.168.223.11

在这里插入图片描述
我们访问下虚机,看下是什么情况,可以通过dashboard控制台访问也可以通过console的方式访问,

使用虚拟控制台访问实例——》 获取实例的虚拟网络计算(VNC)会话URL,并从Web浏览器访问它:

openstack console url show provider

在这里插入图片描述
注意:如果Web浏览器运行在无法解析控制器主机名的主机上,则可以将控制器替换为控制器节点上管理接口的IP地址。

查看是实例没有正常创建,卡在grub系统引导这里了,
在这里插入图片描述
这种情况是因为我使用的vmware虚机虚拟磁盘格式和驱动程序的问题,导致创建的实例无法正常的启动,我们需要做如下操作

openstack image list
openstack image set  --property hw_disk_bus=ide  --property hw_vif_model=e1000 c2243d54-393f-4a5b-9a62-a1f7d7f9958d

在这里插入图片描述

openstack server list
openstack server delete 30d2b8b2-8eb6-492f-9047-92337a5b9215

在这里插入图片描述

重新创建下实例,

openstack server create --flavor m1.nano --image cirros --nic net-id=c4481ab2-2067-4e3d-b138-73802de650cb --security-group 539fd7bb-4e17-4b2d-b038-0567ddcd5f08 --key-name mykey provider

在这里插入图片描述

openstack server list
openstack console url show 65df4618-0e7c-4cc6-a891-2810b0fb27a6

在这里插入图片描述
这时候我们通过console访问就可以看到实例正常启动了,根据提示输入用户名和密码就可以进入系统了,
在这里插入图片描述

登录进来之后可以看到192.168.223.0/24网段的地址已经配置上来了,ping百度也是可以通的,证明外网是通的,
在这里插入图片描述
这时候我们在controller节点上ping分配给实例的地址就可以发现是能够ping通的,
在这里插入图片描述

这样我们就可以在controller节点上登录创建的实例了,

ssh cirros@192.168.223.23

在这里插入图片描述

self-service网络启动一个实例

要启动实例,至少必须指定flavor、glance名称、网络、安全组、密钥和实例名称。

openstack network list

在这里插入图片描述
命令示例:

openstack server create --flavor m1.nano --image cirros \
--nic net-id=SELFSERVICE_NET_ID --security-group default \
--key-name mykey selfservice-instance

将SELFSERVICE_NET_ID替换为self-service网络的ID。

openstack server create --flavor m1.nano --image cirros --nic net-id=266a4294-0b9e-41ec-98be-3f66c5abb186 --security-group 539fd7bb-4e17-4b2d-b038-0567ddcd5f08 --key-name mykey self-service

在这里插入图片描述

获取实例的虚拟网络计算(VNC)会话URL,并从Web浏览器访问它:

openstack server list
openstack console url show self-service

在这里插入图片描述

用户名:cirros
密码:gocubsgo
在这里插入图片描述

我们可以通过之前创建网络的时候,创建的路由在controller上进行访问,

ip netns 
ip netns exec qrouter-52f66683-6088-4128-897d-bd8f4c17dd2d ip a

在这里插入图片描述

ip netns exec qrouter-52f66683-6088-4128-897d-bd8f4c17dd2d ping -c3 172.16.1.4

在这里插入图片描述

ip netns exec qrouter-52f66683-6088-4128-897d-bd8f4c17dd2d ssh cirros@172.16.1.4

在这里插入图片描述

我们还可以在provider虚拟网络上创建一个浮动IP地址:

openstack floating ip create provider
openstack server add floating ip self-service 192.168.223.14
openstack server list

在这里插入图片描述

ping -c3 192.168.223.14

在这里插入图片描述

ssh cirros@192.168.223.14

在这里插入图片描述

总结:

到现在为止,OpenStack环境搭建完成了,网络可以正常创建,实例也能够正常的创建,这就证明我们这套简化版的私有云平台搭建完成了,

整个环境的安装还是非常的费劲的,因为是以官方文档为参照来进行的安装,所以在网络服务neutron的时候按照官方文档顺序部署好,在后面创建实例的时候,创建provider网络的实例是划分不到地址的,这就非常尴尬了,然后进行各种百度,参考网上各种前辈的安装过程,终于实现provider网络的正常使用,

还有就是镜像哪里,我下载的是网上的镜像,创建完成后虚机就卡在grub引导哪里了,这就非常不爽,离成功的最后一步了,来了这么一个坎,然后就是上网按照报错进行百度,好歹是找到了,然后顺利的安装。

现在终于是成功了,感觉还是很爽的!!!

最后,你只要按照我的文档安装,保证你可以成功部署好一套简略的OpenStack私有云环境!!!

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值