一个新的开源项目 WaaS(Workspace-as-a-Service)提供 Kubernetes 原生的、浏览器可访问的 Linux 和 Windows 桌面,把桌面环境作为标准 Kubernetes 资源部署。
架构分层
Kubernetes Operator 把 Workspace 和 WorkspaceTemplate 两个 CRD 调和成 pod/PVC(Linux)或 KubeVirt VM(Windows)。
API Server 是一个 Go(chi 框架)服务,处理 REST 请求、OIDC/本地认证和 RBAC。它只和 Kubernetes API 通信来创建 CRD,不直接与 pod 交互。
WebSocket Proxy(wwt)作为安全网关,在建立到 guacd 的 TCP 连接前校验 JWT claims。
前端是 React 19 仪表盘,提供用户和管理员门户,只与 API Server 通信。
硬边界设计
Operator 被限制在 K8s API 范围内,不能访问 PostgreSQL 数据库;guacd 组件隔离为 ClusterIP only,不暴露到集群外。这两条是明确的安全边界,不是部署建议。
访问方式
Linux 桌面通过标准 pod 内的 VNC 提供,Windows 环境用 KubeVirt 提供的虚拟机通过 RDP 访问。用户通过浏览器以 HTTPS/WSS 协议接入。
GitOps 优先的意义
桌面配置可以像其他集群资源一样被版本化和复现,用 ArgoCD 或 Flux 管理。这让桌面环境变成短暂的、可管理的基础设施,而不是需要人工维护的长期资产。
对开发/测试环境、外包人员临时接入、培训教室这类场景,这个模型的运维成本远低于传统 VDI。
部署
Apache-2.0 许可,单个 Helm chart 即可部署到任意 Kubernetes 集群,唯一前置依赖是 cert-manager。
评估建议
适合已经在使用 Kubernetes 且需要临时桌面环境的团队。如果组织里没有现成的 K8s 运维能力,为了云桌面专门上 K8s 不划算。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。