Vcluster在常规命名空间内运行的虚拟 Kubernetes 集群
创建功能齐全的虚拟 Kubernetes 集群 - 每个 vcluster 都在底层 k8s 集群的命名空间内运行。这比创建独立的完整集群更便宜,而且它比普通命名空间提供了更好的多租户和隔离性。
为什么选择虚拟 Kubernetes 集群?
- Cluster Scoped Resources:比简单的命名空间更强大(虚拟集群允许用户使用 CRD、命名空间、集群角色等)
- 易用性:可在任何 Kubernetes 集群中使用,并通过单个命令或cluster-api在几秒钟内创建
- 成本效益:比“real”集群便宜和高效(单个 pod 和共享资源,就像命名空间一样)
- 轻量级:建立在超快的 k3s 发行版之上,每个虚拟集群的开销最小(其他发行版也可以)
- 严格隔离:为每个vcluster完成独立的Kubernetes控制平面和接入点,同时仍然能够共享底层主机集群的某些服务
- 集群范围权限:允许用户安装需要集群范围权限的应用程序,但实际上仅限于主机集群中的一个命名空间
- 非常适合测试:允许你在单个主机集群内测试不同的 Kubernetes 版本,该主机集群的版本可能与虚拟集群不同
架构
特性
- Certified Kubernetes Distribution - vcluster 本身是经过认证的 Kubernetes 发行版,并且 100% 符合 Kubernetes API。在常规 Kubernetes 集群中工作的一切都在 vcluster 中工作
- 轻量级和低开销- 基于 k3s,捆绑在单个 pod 中,资源消耗超低。还支持其他发行版,例如 k0s 或 vanilla k8s
- 没有性能下降- Pod 被安排在底层主机集群中,因此它们在运行时根本不会受到性能影响
- 减少主机集群的开销- 将大型多租户集群拆分为更小的 vcluster,以降低复杂性并提高可扩展性。由于大多数 vcluster api 请求和对象根本不会到达宿主集群,因此 vcluster 可以大大降低底层 Kubernetes 集群的压力
- Easy Provisioning - 通过 vcluster CLI、helm、kubectl、cluster api、Argo CD 或任何您喜欢的工具创建(它基本上只是一个 StatefulSet)
- 无需管理员权限- 如果您可以将 Web 应用程序部署到 Kubernetes 命名空间,那么您也可以部署 vcluster
- 单一命名空间封装- 每个 vcluster 及其所有工作负载都位于底层主机集群的单一命名空间内
- Easy Cleanup - 删除主机命名空间,vcluster 及其所有工作负载将立即消失
- 灵活和多功能- vcluster 支持不同的存储后端(例如 sqlite、mysql、postgresql 和 etcd)、插件、可自定义的同步行为、vcluster 设置中的 vcluster,并具有更多额外的配置选项以适应多种不同的用例
评论