《 Kubernetes进阶实战》一2.2部署Kubernetes集群
2.2 部署Kubernetes集群
Kubernetes系统可运行于多种平台之上,包括虚拟机、裸服务器或PC等,例如本地主机或托管的云端虚拟机。若仅用于快速了解或开发的目的,那么读者可直接于单个主机之上部署“伪”分布式的Kubernetes集群,将集群的所有组件均部署运行于单台主机上,著名的minukube项目可帮助用户快速构建此类环境。如果要学习使用Kubernetes集群的完整功能,则应该构建真正的分布式集群环境,将Master和Node等部署于多台主机之上,主机的具体数量要按实际需求而定。另外,集群部署的方式也有多种选择,简单的可以基于kubeadm一类的部署工具运行几条命令即可实现,而复杂的则可以是从零开始手动构建集群环境。
2.2.1 kubeadm部署工具
kubeadm是Kubernetes项目自带的集群构建工具,它负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,简单来讲,kubeadm是Kubernetes集群全生命周期的管理工具,可用于实现集群的部署、升级/降级及拆除,如图2-6所示。不过,在部署操作中,kubeadm仅关心如何初始化并启动集群,余下的其他操作,例如安装Kubernetes Dashboard、监控系统、日志系统等必要的附加组件则不在其考虑范围之内,需要管理员按需自行部署。
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 conf?ig print-default、kubeadm conf?ig migrate、kubeadm conf?ig images pull和kubeadm upgrade node conf?ig等。总体来说,使用kubeadm部署Kubernetes集群具有如下几个方面的优势。
◆ 简单易用:kubeadm可完成集群的部署、升级和拆除操作,并且对新手用户非常友好。
◆ 适用领域广泛:支持将集群部署于裸机、VMware、AWS、Azure、GCE及更多环境的主机上,且部署过程基本一致。
◆ 富有弹性:1.11版中的kubeadm支持阶段式部署,管理员可分为多个独立步骤完成部署操作。
◆ 生产环境可用:kubeadm遵循以最佳实践的方式部署Kubernetes集群,它强制启用RBAC,设定Master的各组件间以及API Server与kublet之间进行认证及安全通信,并锁定了kubelet API等。
由此可见,kubeadm并非一键安装类的解决方案,相反,它有着更宏大的目标,旨在成为一个更大解决方案的一部分,试图为集群创建和运营构建一个声明式的API驱动模型,它将集群本身视为不可变组件,而升级操作等同于全新部署或就地更新。目前,使用kubeadm部署集群已经成为越来越多的Kubernetes工程师的选择。
- 点赞
- 收藏
- 关注作者
评论(0)