type
status
date
slug
summary
tags
category
icon
password
URL

背景

 

websockify与noVNC

notion image

OpenStack NoVNC

09-nova的模块及novnc详解
对外提供rest接口的处理 对传入的参数进行合法性校验和约束限制 对请求的资源进行配额(quota)的校验和预留 资源的创建,更新,删除查询等 虚拟机生命周期的入口 可水平扩展部署(可以有多个节点) 选择策略 基于内存权重的选择。 散列:在候选的一个大小范围内的主机中,随机选择一个主机。 Filter:对主机进行过滤的实体,支持自研扩展 scheduler_default_filters配置新写的filter。 scheduler_available_filters指定扩展的filter目录的收集函数。 指定主机创建,迁移时候该调度失效 数据库操作。解耦其他组件(nova-compute)数据库访问。 Nova复杂流程控制,如创建,冷迁移,热迁移,虚拟机规格调整,虚拟机重建。 其他组件的依赖。如nova-compute需要依赖nova-conductor启动成功后才能启动成功。 其他组件的心跳定时写入。Nova-compute,nova-conductor,nova-scheduler,nova-console,nova-consoleauth。 可水平扩展部署 虚拟机各生命周期操作的真正执行者(会调用对应的hypervisor的driver)。 底层对接不同虚拟化的平台(kvm,vmware,xen,FusionCompute,hyperv等)。 内置周期性任务,完成资源刷新,虚拟机状态同步等功能。 资源管理模块(resource_tracker)配合插件机制,完成资源的统计。 Claim模块完成资源的分配和释放。 在访问VNC-Server的时候需要对应的VNC-Client,现在浏览器里已经集成了VNC的功能,可以直接通过浏览器来进行访问。 1 将公网(public network)和私网(private network)隔离 2 VNC client运行在公网上,VNCServer运行在私网上,VNC Proxy作为中间的桥梁将二者连接起来 3 VNC Proxy通过token对VNC Client进行验证 4 VNC Proxy不仅仅使得私网的访问更加安全,而且将具体的VNC Server的实现分离,可以支持不同Hypervisor的VNC Server但不影响用户体验 1 在Controller节点上部署nova-consoleauth 进程,用于Token验证 2 在Controller节点上部署nova-novncproxy 服务,用户的VNC Client会直接连接这个服务 3 Controller节点一般有两张网卡,连接到两个网络,一张用于外部访问,我们称为public network,或者API network,这张网卡的IP地址是外网IP,如图中172.24.1.1,另外一张网卡用于openstack各个模块之间的通信,称为management network,一般是内网IP,如图中10.10.10.2 4 在Compute节点上部署nova-compute,在nova.conf文件中有下面的配置 #nova vnc proxy是通过内网IP来访问vnc server的,所以nova-compute会告知vnc proxy用这个IP来连接我。 novncproxy_base_url=http://192.168.150.10:6080/vnc_auto.html #允许任何主机来访问novnc novncproxy_host=0.0.0.0 #代理端口 novncproxy_port=6080 #代理客户端 vncserver_proxyclient_address=controller #VNC Server的监听地址 vncserver_listen=0.0.0.0 1 用户从浏览器里面打开连接到虚拟机的VNC Client 2 浏览器向nova-api发送请求,要求返回访问vnc的url 3 nova-api调用nova-compute的get vnc console方法,要求返回连接VNC的信息 4 nova-compute调用libvirt的get vnc console函数 5 libvirt会通过解析虚拟机运行的/etc/libvirt/qemu/instance-00000011.xml文件来获得VNC Server的信息 6 libvirt将host, port等信息以json格式返回给nova-compute 7 nova-compute会随机生成一个UUID作为Token 8 ...
09-nova的模块及novnc详解
 

websockify使用

 
 

ZStack Websockify的使用

📌
Websockify的作用是把vnc协议转成websocket协议
📌
ZStack在console proxy中集成了websockify用于做云主机控制台(vnc). 1. websockify进程会有一个idleTime, 如果超过这个时间会自动关闭 2. websockify进程会在打开控制台的时候启动 3. websockify进程会根据打开的控制台数量, fork对应数量的进程
Docker构建基于Centos镜像删除不需要的systemd服务BIOS
Loading...