2.2.1.kubeadm 部署工具

kubeadm 是 Kubernetes 项目自带的集群构建工具,它负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,简单来讲,kubeadm 是 Kubernetes 集群全生命周期的管理工具,可用于实现集群的部署、升级\降级及拆除,如图所示。不过,在部署操作中,kubeadm 仅关心如何初始化并启动集群,余下的其他操作,例如安装 Kubenetes Dashboard、监控系统、日志系统等必要的附加组建则不在其考虑范围之内,需要管理员按需自行部署。

kubeadm 功能示意图
图 1.4.2.1 - kubeadm 功能示意图

kubeadm 集成了 kubeadm init 和 kubeadm join 等工具程序,其中 kubeadm init 用于集群的快速初始化,其核心功能是部署 Master 节点的各个组件,而 kubeadm join 则用于将节点快速加入到指定集群中,它们是创建 Kubernetes 集群最佳实践的 “快速路径”。另外,kubeadm token 可于集群构建后管理用于加入集群时使用的认证令牌(token),而 kubeadm reset 命令的功能则是删除集群构建过程中生成的文件以重置回初始状态。

kubeadm 还支持管理初始引导认证令牌(Bootstrap Token),完成待加入的新节点首次联系 API Server 时的身份认证(基于共享密钥)。另外,它们还支持管理集群版本的升级和降级操作。Kubernetes 1.8 版本之前,kubeadm 一直处于 beta 级别,并警告不能用于生产环境。不过,自 1.9 版本开始,其虽仍处于 beta 版本,但已经不再输出警告信息,而随着 1.11 版本发布的 kubeadm 又得到了进一步的增强,它支持动态配置 kubelet,通过增强的 CRI 集成支持动态探测以判定所用的容器引擎,并引入了几个新的命令行工具,包括 kubeadm config print-default、kubeadm config migrate、kubeadm config image pull 和 kubeadm upgrade node config 等。总体来说,使用 kubeadm 部署 Kubernetes 集群具有如下几个方面的优势。

  • 简单易用:kubeadm 可完成集群的部署、升级和拆除操作,并且对新手用户非常友好。
  • 适用领域广泛:支持将集群部署与裸机、VMware、AWS、Azure、GCE 及更多环境的主机上,且部署过程基本一致。
  • 富有弹性:1.11 版本中的 kubeadm 支持阶段式部署,管理员可分为多个独立步骤完成部署操作。
  • 生产环境可用:kubeadm 遵循以最佳实践的方式部署 Kubernetes 集群,它强制启用 RBAC,设定 Master 的各组件间以及 API Server 与 kubelet 之间进行认证及安全通信,并锁定了 kubelet API 等。

由此可见,kubeadm 并非一键安装类的解决方案,相反,它有着更宏大的目标,旨在成为一个更大解决方案的一部分,试图为集群创建和运营构建一个声明式的 API 驱动模型,它将集群本身视为不可变组件,而升级操作等同与全新部署或就地更新。目前,使用 kubeadm 部署集群已经成为越来越多的 Kubernetes 工程师的选择。

results matching ""

    No results matching ""