当前位置:首页 > 数据库

使用 Crossplane 和 VCluster 在 Kubernetes 上快速构建新集群

Crossplane 是使用s上一个开源的 Kubernetes 插件,通过扩展 Kubernetes API 来解决云资源的快速供应问题。使用 Crossplane 时,构建你可以用声明的新集方式定义需要创建哪些云资源才能让你的应用程序正常工作,不需要编写任何代码。使用s上可以直接通过创建相关的快速 CRD 对象来完成这些云资源的定义,可以看成是构建一个云原生版本的 Terraform。

VCluster 是新集一个通过轻量级虚拟 Kubernetes 集群提供灵活性并节省成本的云服务器提供商工具,使用 VCluster,使用s上你可以在 Kubernetes 集群内创建一个隔离的快速虚拟 Kubernetes 集群。这大大降低了创建和维护 Kubernetes 集群控制平面的构建复杂性。

下表比较了使用命名空间、新集vcluster 和 Kubernetes 集群的使用s上隔离级别和管理复杂性:

那么我们将 Crossplane 和 VCluster 这两个工具一起来结合时候会产生怎样的效果呢?接下来我们将通过一个示例来说明这二者的结合使用。

示例

在这个示例中我们想要实现如下所示的快速一些功能:

拥有一个集群可以接收请求来启动一个新的集群环境这些环境将可以使用 Helm 来安装应用程序请求新环境的团队并不关心集群在哪里创建的,所以使用 VCluster 或在云提供商中创建一个 Kubernetes 集群应该为终端用户提供类似的云服务器构建体验。

这里我在本地环境使用 KinD 来进行演示,相关的资源清单可以在 https://github.com/salaboy/from-monolith-to-k8s/tree/main/platform/crossplane-vcluster 此处找到(需要自己提前安装 kubectl、helm、kind)。

如上图所示,我们只需要创建一个 KinD 集群(当然也可以是其他任何的 Kuberentes 集群),然后在集群上安装 Crossplane 和 Crossplane Helm Provider,因为我们这里没有创建任何云资源,所以我们不需要配置任何其他的 Crossplane Provider(比如 GCP、AWS、Azure 等)。

安装 Crossplane

接下来我们可以先使用 KinD 创建一个 Kubernetes 集群。源码下载

$ kind create cluster

Creating cluster "kind" ...

✓ Ensuring node image (kindest/node:v1.23.4)

分享到:

滇ICP备2023006006号-16