Ironic驱动的VNC控制台支持¶
https://blueprints.launchpad.net/nova/+spec/ironic-vnc-console
该特性旨在提供来自Ironic的vnc控制台。
问题描述¶
最终用户经常需要排查他们的实例,因为他们可能破坏了启动配置或使用防火墙把自己锁定了。键盘-视频-鼠标 (KVM) 访问通常是解决这些类型问题的必需条件,因为串口访问并非总是可用或正确配置。此外,与串口控制台相比,KVM 提供了更好的用户体验。
Horizon的VNC控制台不支持Nova配置的Ironic节点。此规范旨在通过novnc代理将其扩展到图形控制台。
用例¶
最终用户将能够从裸机服务器获取可用的vnc控制台url:在bm侧切换控制台类型为 vnc openstack baremetal node console enable openstack console url show --novnc
应部署nova_novncproxy
提议的变更¶
Ironic virt驱动程序将不得不实现
get_vnc_console并返回一个ctype.ConsoleVNC,其中包含所需的连接信息(端口/ip)。如果实例不可用vnc控制台,将引发ConsoleTypeUnavailable。要获取vnc控制台,将使用ironic APInode.get_console(与用于串行控制台相同的API)。
备选方案¶
接受此限制并仅提供串行控制台。我们可以配置kvm访问,包括通过串行代理和shell in a box访问bios,用于Nova配置的Ironic裸机实例。
使用管理员提供的带外 KVM 访问,无需 Ironic 支持。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
VNC连接到节点通过在Nova中创建控制台时生成的令牌来保护。此bearer令牌是连接到代理所需的唯一内容,因此用户与代理之间的连接应通过ssl进行保护,就像vms一样
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
大部分更改将在ironic侧进行。在ironic中,我们必须选择要使用的控制台,串行或vnc。此选择不影响nova。Ironic侧还将实现vnc代理,以处理rfb握手
对配置的添加将与串行控制台类似:nova-novncproxy/nova.conf:[vnc] novncproxy_host = … novncproxy_port = … server_listen = … server_proxyclient_address = … auth_schemes = vnc
nova-compute-ironic/nova.conf:[vnc] enabled = true novncproxy_host = … novncproxy_port = … server_listen = … server_proxyclient_address = … novncproxy_base_url = …
nova-conductor/nova.conf [vnc] novncproxy_host = … novncproxy_port = … server_listen = … server_proxyclient_address = …
开发人员影响¶
无
升级影响¶
无
实现¶
负责人¶
- 主要负责人
kirillgermanov
- 其他贡献者
无
功能联络人¶
无
工作项¶
nova-compute-ironic:向Ironic virt驱动程序添加新方法
get_vnc_console
依赖项¶
测试¶
添加相关的单元测试
文档影响¶
更新所需
https://docs.openstack.org/nova/latest/admin/remote-console-access.html https://docs.openstack.org/ironic/latest/admin/console.html
参考资料¶
历史¶
无