访问托管在云中的 openstack 实例

Posted

技术标签:

【中文标题】访问托管在云中的 openstack 实例【英文标题】:Accessing openstack instances hosted in Cloud 【发布时间】:2021-05-06 11:35:54 【问题描述】:

我是 OpenStack 的新手!我已经在 Microsoft Azure 虚拟机上的 Ubuntu Server 18.04 LTS 中安装了 Openstack(出于我的学习目的,因为我没有所需的资源,例如 16GB RAM 和 4 个 CPU)。我可以使用我机器中的浏览器在该 VM 的公共 IP 地址的帮助下访问 Openstack 仪表板。我已经为实例分配了浮动 IP 地址(这里是 172.24.4.8)。 我的实例规格是

这是我的网络拓扑和我的天蓝色虚拟机的网络配置

azure vm 的私有 ip = 192.168.0.4 azure vm 的公共 ip = 20.193.227.12

我可以使用 azure vm 的公共 IP 地址访问 OpenStack 仪表板,但我无法通过 SSH 从本地计算机和该 azure 虚拟机访问实例。帮助我如何访问它们!

【问题讨论】:

编辑您的问题并提供更多信息。您是如何部署 OpenStack 云的?您从哪里尝试通过 SSH 连接到实例?如果您的 SSH 客户端在 Ubuntu 服务器之外运行,您是如何将 OpenStack 云的外部网络连接到 Azure 网络的? 我已经编辑了我的问题@berndbausch 是的,但我仍然不知道您的网络是如何设置的。有一百种方法可以做到这一点。您需要说明您是如何创建 openstack 云的,以及您采取了哪些措施将云的外部网络连接到 Azure 网络。 “我的机器”是指 Azure VM 还是其他东西? “我的机器”指的是我的本地机器@berndbausch 【参考方案1】:

从您的网络拓扑屏幕截图中,我猜您使用 Devstack 来创建云。你能确认一下吗?

名为public的外部网络并没有以任何方式连接到云之外的世界。这是因为默认情况下,Devstack 创建一个隔离的外部网络用于测试目的。但是,您应该能够从 Azure VM 访问该实例。所提供的信息不足以解释您为什么不能这样做。

请参阅Devstack networking page。它指出

br-ex 接口 (...) 未连接到任何物理接口

这是无法访问实例的技术原因。

上述页面的共享访客界面部分记录了如何将 Devstack 云连接到真实的外部网络。

编辑:

共享访客界面说明要求您进行设置:

PUBLIC_INTERFACE= NIC connected to external network. *eth0* in your case.
HOST_IP= *192.168.0.4* for you
FLOATING_RANGE= Your netmask is 255.255.255.128, which translates to a network prefix of 25, 
                I think. If I am right, the value is *192.168.0.0/25*.
PUBLIC_NETWORK_GATEWAY= The IP address of the router on the *192.168.0.0/25* network.
Q_FLOATING_ALLOCATION_POOL= The range of addresses from FLOATING_RANGE 
                            that you want to use as floating IPs for 
                            your OpenStack instances.

FLAT_INTERFACE 可能是已失效的 Nova-Network 服务的旧设置。我在 Devstack 的 Ussuri 版本中根本没有看到它。

【讨论】:

感谢@berndbausch 的回答,但作为初学者,我不明白local.conf 中的PUBLIC_INTERFACE 和FLAT_INTERFACE 是什么。你能解释一下这些配置吗? 如果我有 eth0 和 eth1 这样的两个接口,我可以将 eth0 用于我的 Internet 和 SSH 连接并将 eth1 分配给 neutron 以完全管理吗? (根据您提到的文档) 是的,请参阅专用访客界面部分docs.openstack.org/devstack/latest/…。 根据专用访客界面部分,我对 local.conf 进行了配置,但在安装 OpenStack 时,我失去了与 Azure VM 的 SSH 连接,我根本无法访问它。我将 eth0 NIC 用于 SSH,并将 PUBLIC_INTERFACE 分配给同一个 NIC。

以上是关于访问托管在云中的 openstack 实例的主要内容,如果未能解决你的问题,请参考以下文章

Openstack之路计算服务Nova

使用 JDBC 连接到托管在云中的 MongoDB 时出错

虚拟化网络之Open-vswitch的使用实例

在 grafana 云中访问 loki

局域网上无法访问 openstack 实例

openstack部署之创建第一个实例