背景 链接到标题 在当前 Kubernetes 生态中,生命周期管理相关工具官方的有 kubeadm、kubespray(部署集群部分通过 kubeadm) ,开源社区还有很多其他的实现,我们可以通过这类工具来实现 k8s 集群的部署,升级,增删节点,但是使用一个工具的前提是:基础设施已经准备完成。只有当基础设施准备完成后,kubeadm 之类工具才可以正常工作。
当我们在部署 Kubernetes 集群时,节点可能在任何环境上,比如 AWS、OpenStack、Vsphere、Azure 等,那么想要自动化配置基础设施,通常我们根据自己的环境不同,编写不通的代码来支持我们的虚拟化(or 服务器)场景。
基础设施包括不限于:
OS 安装 Load Balance 配置 网络配置 IP 分配 … Cluster-API 链接到标题 Kubernetes 社区针对基础设施问题,发起了一个项目:cluster-api,目前处于 alpha1 版本,项目目标:
使用声明式API管理 Kubernetes 集群的生命周期 支持多种环境,私有云或公有云 使用社区中现有的工具完成相应功能 … 功能简述 链接到标题 无需创建额外基础设施前提下创建 bootstrap cluster 通过 bootstrap cluster 创建目标 k8s 集群 工作流程 链接到标题 cluster-api 使用声明式 API 管理 k8s 集群,需要环境中先存在一个 k8s 集群,通常成为 bootstrap cluster,若不存在,也可通过提供的命令行工具 clusterctl 创建 bootstrap cluster 在 bootstrap cluster 中,部署 CRD 及相应的 cluster api 控制器及 provider 控制器 在 bootstrap cluster 中,开始创建我们真正想要创建的资源:k8s 集群 创建资源类型为 Cluster、Machine 或 MachineDeployment ,对应的控制器会自动为我们创建好虚拟机 在虚拟机创建完成后,通过 kubeadm 创建 k8s 集群 具体实现 链接到标题 虚拟机创建 链接到标题 目前看到的几个 Cluster-API Provider 项目实现,虚拟机均通过克隆的方式创建出来的。