openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
小编带来的是openstack虚拟机实例创建并实现与外部网络通信流程的相关知识,相关内容具体如下:
1.准备镜像文件
镜像是创建虚拟机实例的基础,这里先准备两个镜像文件:
1.1下载cirros镜像文件
从cirros
官网下载最新的镜像文件
http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img
1.2下载fedora镜像文件
fedora
项目镜像文件下载地址为:
https://fedoraproject.org/cloud/download
1.3上传cirros
镜像
以云管理员admin
身份登录OpenStack
:
左侧管理员–>计算–>镜像–>创建镜像
输入镜像名称–>浏览本地镜像文件–>指定镜像格式–>指定镜像共享为公有–>然后点击创建镜像
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
创建镜像成功:
1.4上传fedora镜像文件
这里以demo
的身份登录系统,进行上传操作,这里将镜像可见性设置为私有,也就是该镜像只为demo项目提供服务,不向其他项目提供:
完成后,可以在镜像列表中查看到两个镜像文件:
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
2.查看实例类型
以云管理员admin
的身份登录系统,其他用户无权查看该选项:
管理员–>计算–>实例类型
可以看到默认为5个实例类型。
3.查看网络
不同的项目可以使用的网络不完全相同,这里以demo
身份登录系统:
项目–>网络–>网络
显示出当前网络列表,由于当前只能用private
网络,所以public
网络的信息不可见:
4.添加安全组规则
安全组中的规则用于控制被关联的实例的网络通信,每个项目可以定义自己的安全组,然后将虚拟机关联到安全组。
这里先查看默认安全组规则:
项目–>网络–>安全组–>管理规则
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
由于后面实验中需要用到外部网络通过SSH登录虚拟机,同时用ping
工具测试连通性,所以下面添加规则:
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
以上两条规则完成后,如下:
5.添加密钥对
密钥对是虚拟机实例启动时被注入镜像中的SSH
凭据,每个项目可以定义自己的密钥对。
同样,以demo身份登录系统,然后根据左侧导航:
项目–>计算–>密钥对
可以看出,目前项目中密钥对为空。
要采用SSH
方式以证书凭据方式登录虚拟机实例,就需要创建或导入密钥对,并在创建虚拟机实例时关联对应密钥对。
点击创建密钥对,进行创建:
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
同时下载到本地一个mydemo-key.pem的私钥文件。
创建的新的密钥对文件列表如下:
6.创建虚拟机实例
上在工作完成后,下面就可以创建虚拟机实例。这里还是以demo
身份登录系统进行创建:
项目–>计算–>实例–>创建实例
6.1设置实例名称和数量
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
6.2设置实例源
6.3设置实例类型
6.4选择网络选项
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
6.5选择安全组
6.6选择密钥对选项
6.7其他选项保持默认
在保持其他选项不变,然后点击创建实例。
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
从而完成实例的创建。
7.创建第二个虚拟机实例
同第一个实例创建方法一样,这里只是注意卷大小的选择,根据镜像和系统文件大小来选择,另外,就是实例类型,根据需要选择合适的实例类型:
其他保持默认,然后点击创建实例,完成实例的创建,如下:
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
8.操作和使用虚拟机实例
如下图,先进入控制台对虚拟机进行操作:
点击概况,可以查看虚拟机实例的配置情况:
openstack虚拟机实例创建并实现与外部网络通信流程。小编来告诉你更多相关信息。
openstack虚拟机实例创建并实现与外部网络通信流程
9.配置虚拟机实例与外部网络通信
网络是OpenStack
非常重要的资源之一,没有网络,虚拟机实例将被完全隔绝。
RDO
一体化OpenStack
云平台默认已配置了虚拟网络,但是由于没有针对实际环境进行配置,即使分配浮动IP
地址,创建的虚拟机实例也不能与外部网络通信。
此时,通过修改相关配置来定制网络,即可实现虚拟机实例与外部网络之间的通信。
OpenStack
的虚拟机实例拥有一个私有IP
地址,通过该地址,它们可以在内部网络中相互访问,要从外部网络的其他计算机访问这些实例,需要为实例分配浮动IP
地址。
9.1将OpenStack
主机网卡添加到br-ex
网桥上
先查看OpenStack
主机的网络接口信息:
[root@mynode-a ~]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:bb:d5:35 brd ff:ff:ff:ff:ff:ff inet 192.168.250.250/24 brd 192.168.250.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:febb:d535/64 scope link valid_lft forever preferred_lft forever3: ovs-system: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 16:91:e1:b4:7c:4b brd ff:ff:ff:ff:ff:ff4: br-ex: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 7e:27:21:cc:2d:40 brd ff:ff:ff:ff:ff:ff5: br-int: mtu 1442 qdisc noop state DOWN group default qlen 1000 link/ether 9a:df:16:e1:29:4f brd ff:ff:ff:ff:ff:ff6: tap725a7e8c-b4: mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000 link/ether fe:16:3e:fc:f5:47 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc16:3eff:fefc:f547/64 scope link valid_lft forever preferred_lft forever7: tapad9cc827-30@if2: mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000 link/ether b6:1c:e1:31:01:0d brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::b41c:e1ff:fe31:10d/64 scope link valid_lft forever preferred_lft forever8: tap5f3da2e4-3a: mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000 link/ether fe:16:3e:92:da:e9 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc16:3eff:fe92:dae9/64 scope link valid_lft forever preferred_lft forever[root@mynode-a ~]#
如上,其中eth0是主机网卡,以br开头的是网桥。
接着查看主机上当前的网桥:
[root@mynode-a ~]# ovs-vsctl list-brbr-exbr-int[root@mynode-a ~]#
可以看到目前主机已经有两个网桥,其中br-ex是外部网桥,br-int是集成网桥。
用下面命令查看br-ex
网桥端口:
[root@mynode-a ~]# ovs-vsctl list-ports br-expatch-provnet-3391f33e-a5ff-4066-83fd-633340ea4339-to-br-int[root@mynode-a ~]#
可以看到,该网桥只有一个连接集成网桥br-int
的patch
端口,没有端口连接到openstack
主机上的外部网络接口,因此当前openstack
云平台上的虚拟机实例无法与外部网络进行通信。
解决的办法是将OpenStack
主机上的网卡作为一个端口添加到br-ex
网桥上
Open vSwitch
会生成一个普通端口来处理此网卡的数据包。但是以这种方式实现的配置在开机后会丢失,可以改用网卡配置文件来实现。
1)复制网卡ifcfg-eth0
文件
[root@mynode-a network-scripts]# cp ifcfg-eth0 ifcfg-br-ex[root@mynode-a network-scripts]#
2)修改ifcfg-br-ex
文件
[root@mynode-a network-scripts]# vim ifcfg-br-exTYPE=OVSBridge # 将TYPE值修改为OVSBridgeDEVICETYPE=ovs # 添加DEVICETYPE,值为ovsPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=br-ex # NAME值为br-exUUID=45242253-7348-405e-946a-40e72803e0caDEVICE=br-ex #DEVICE值为br-exONBOOT=yesIPADDR=192.168.250.250PREFIX=24GATEWAY=192.168.250.1DNS1=222.222.222.222PEERDNS=no
3)修改ifcfg-eth0
文件
删除相关信息,配置完成后,用cat
命令查看:
[root@mynode-a network-scripts]# cat ifcfg-eth0TYPE=OVSPortNAME=eth0DEVICE=eth0ONBOOT=yesDEVICETYPE=ovsOVS_BRIDGE=br-ex[root@mynode-a network-scripts]#
4)重启网络服务
为了使当前配置生效,需重启网络服务:
[root@mynode-a network-scripts]# systemctl restart network
此时,再查看网络配置信息:
[root@mynode-a /]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000 link/ether 52:54:00:bb:d5:35 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:febb:d535/64 scope link valid_lft forever preferred_lft forever3: ovs-system: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 16:91:e1:b4:7c:4b brd ff:ff:ff:ff:ff:ff4: br-ex: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 7e:27:21:cc:2d:40 brd ff:ff:ff:ff:ff:ff inet 192.168.250.250/24 brd 192.168.250.255 scope global br-ex valid_lft forever preferred_lft forever inet6 fe80::7c27:21ff:fecc:2d40/64 scope link valid_lft forever preferred_lft forever5: br-int: mtu 1442 qdisc noop state DOWN group default qlen 1000 link/ether 9a:df:16:e1:29:4f brd ff:ff:ff:ff:ff:ff6: tap725a7e8c-b4: mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000 link/ether fe:16:3e:fc:f5:47 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc16:3eff:fefc:f547/64 scope link valid_lft forever preferred_lft forever7: tapad9cc827-30@if2: mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000 link/ether b6:1c:e1:31:01:0d brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::b41c:e1ff:fe31:10d/64 scope link valid_lft forever preferred_lft forever8: tap5f3da2e4-3a: mtu 1442 qdisc pfifo_fast master ovs-system state UNKNOWN group default qlen 1000 link/ether fe:16:3e:92:da:e9 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc16:3eff:fe92:dae9/64 scope link valid_lft forever preferred_lft forever
可以看出,外部网桥br-ex
获得源eth0
网卡的IP
地址192.168.250.250
,而eth0
网卡作为该网桥上的一个端口后,可以没有IP
地址。
9.2调整网络配置
RDO
一体化OpenStack
云平台默认配置了一个内部网络、一个外部网络和一个路由器。
云管理员可以查看所有网络配置,以admin
身份登录系统:
管理员–>网络–>网络
可以看出默认系统一个外部网络(public)和一个内部网络(private):