vcluster(virtual cluster,虚拟集群)
是一个能在常规的 Kubernetes 集群之上运行的一个功能齐全,轻量级,隔离性良好的 Kubernetes 集群的软件
介绍
vcluster 包含 2 个 Pod 组成
控制平面
:包含 API Server, Controller Manager, 数据存储
- 默认情况下使用 sqlite 作为数据存储,并且使用 k3s 运行 API Server 和 Controller Manager
Syncer 同步器
:vcluster 本身并没有实际的工作节点或者网络,它使用 syncer 将虚拟集群中创建的资源复制到底层宿主集群中
特点:
部署
依赖持久化存储,如 OpenEBS
安装 vcluster CLI
参考
curl -L -o vcluster "https://github.com/loft-sh/vcluster/releases/latest/download/vcluster-linux-amd64" && sudo install -c -m 0755 vcluster /usr/local/bin && rm -f vcluster
使用
创建 vcluster
vcluster create my-vcluster
说明:
vcluster connect <cluster-name>
# 通过 Service 暴露
vcluster create <cluster-name> --expose
此时,打开另一个窗口就可以执行 k8s 相关命令,也可以在原有集群执行 kubectl -n vcluster-<vcluster-name> xxx
管理资源
vcluster delete <cluster-name>
扩展
基于 argo 部署 vcluster 参考