我想知道openstack如何将ip分配给虚拟机?以及如何找出VM使用的端口和ips。我们是否可以找到在VM内部运行的应用程序使用的IP和端口?
答案 0 :(得分:0)
要为VM分配IP,您可以使用以下命令:
openstack floating ip create public
要关联您的VM和IP,请使用以下命令:
openstack server add floating ip your-vm-name your-ip-number
列出应用程序使用的所有端口,ssh到您的实例并运行:
sudo lsof -i
答案 1 :(得分:0)
假设您知道VM名称 请执行下列操作: 在控制器上运行 nova interface-list VM-NAME
它将为您提供VM接口的port-id,IP地址和mac地址。
您可以登录VM并运行
netstat -tlnp 以查看在VM内运行的应用程序使用的IP和端口。
关于VM如何获取IP,这取决于您的部署。在创建网络并在该网络下创建子网时,在基本的openstack部署中,您将在网络节点上看到创建了dhcp命名空间。 (在网络节点上执行 ip netns )。命名空间名称为qdhcp-network-id。在dhcp命名空间内运行的dnsmasq进程将IP分配给VM。这只是VM获取IP的众多方式之一。
答案 2 :(得分:-3)
这篇特别End User page的官方文件可能是一个好的开始:
"每个实例都可以拥有私有或固定的IP地址以及公共或浮动的IP地址 私有IP地址用于实例之间的通信,公共IP地址用于与外界通信。
启动实例时,会自动为其分配一个保持不变的专用IP地址,直到您显式终止该实例。重新启动实例对私有IP地址没有影响。
由云运营商配置的浮动IP池可在OpenStack Compute中使用。
您可以为项目分配一定数量的这些:每个项目的最大浮动IP地址数由配额定义。
您可以将此集中的浮动IP地址添加到项目实例中。浮动IP地址可以随时动态解除关联并与同一项目的其他实例关联 在为实例分配浮动IP地址之前,首先必须将浮动IP分配给项目。将浮动IP地址分配给当前项目后,您可以将它们分配给正在运行的实例。
您可以一次为一个实例分配浮动IP地址。"
当然,this section of the Admin Guide
中有更深层次的内容关于如何查找端口和IP,您有两种选择:命令行界面或API。
例如,如果您正在使用Neutron *并希望找到与API一起使用的IP或网络:
GET v2.0/networks
$ neutron net-list
您可以对端口和子网使用类似的命令,但是如果您可以通过这种方式获取有关在VM中运行的应用程序的信息,我还没有亲自测试过。
*查看您正在运行的OpenStack版本。如果它是旧的,可能会使用Compute节点(Nova)进行联网。