在 Cilium CNI 集群上运行 vCluster 虚拟集群

在 Cilium CNI 集群上运行 vCluster 虚拟集群

💡 原文中文,约9100字,阅读约需22分钟。
📝

内容提要

在KubeCon China 2024大会上,用户询问Cilium与vCluster集成的问题。经过测试发现,vCluster v0.20中的容器网络正常,但在虚拟集群上使用Cilium的网络策略受限。vCluster是轻量级虚拟集群解决方案,可在Kubernetes集群中创建和管理虚拟的Kubernetes集群。Cilium是基于eBPF技术的容器网络接口插件,提供高效、安全的网络和负载均衡功能。

🔎

延伸解读

Cilium 网络策略在 vCluster 中的限制

文章测试表明,在 Cilium CNI 的 Host 集群上运行 vCluster 时,虚拟集群内的容器网络通信正常,但 Cilium 的网络策略无法在虚拟集群中生效。这是因为 vCluster 的 Syncer 组件仅同步 Kubernetes 原生资源,而 Cilium 的网络策略属于自定义资源,不在同步范围内。因此,如果依赖 Cilium 网络策略实现安全隔离,需注意此限制。

vCluster 的适用场景与部署建议

vCluster 默认以单实例 StatefulSet 运行,适合开发、测试及 CI/CD 环境,能快速创建和销毁虚拟集群,实现多租户隔离和资源优化。但生产环境建议采用高可用方案部署,以避免单点故障。此外,虚拟集群共享 Host 集群的容器网络,因此网络性能与 Host 集群的 CNI 实现密切相关。

Syncer 组件的作用与局限

Syncer 是 vCluster 架构中的关键组件,负责在虚拟集群和 Host 集群之间同步 Kubernetes 资源,如 Pods、Services、ConfigMaps 等。它通过“转译”资源,使虚拟集群能够利用 Host 集群的基础设施。然而,Syncer 仅支持 Kubernetes 原生资源,对于 Cilium 网络策略等自定义资源无法同步,导致相关功能在虚拟集群中受限。

❓

Q&A

vCluster 是什么?

vCluster 是一种轻量级的虚拟集群解决方案,允许在 Kubernetes 集群中创建和管理虚拟的 Kubernetes 集群。

在 Cilium CNI 集群上运行 vCluster 有哪些限制?

在虚拟集群上使用 Cilium 的网络策略会受到限制,但容器网络本身没有问题。

使用虚拟集群的好处是什么?

使用虚拟集群可以实现多租户隔离、开发与测试便利、资源优化、灵活管理和成本降低。

如何在 Kubernetes 集群上安装 Cilium?

可以通过下载 Cilium 的安装包并执行安装命令来安装 Cilium。

Syncer 在 vCluster 中的作用是什么?

Syncer 是 vCluster 中的关键组件,负责在虚拟集群和 Host 集群之间同步 Kubernetes 资源。

如何连接到虚拟集群?

可以使用 vCluster CLI 提供的命令快速连接到虚拟集群,无需直接使用 kubeconfig。

🏷️

标签

➡️

继续阅读