二、搭建Kubernetes集群
2.1 搭建Kubernetes环境平台规划和部署方式介绍
2.1.1 搭建Kubernetes环境平台规划
如何安排Master、node。我们已经知道Kubernetes架构的组件共有两大部分,Master和node,因此这里的搭建我们可以分为两个部分,单Master集群、多Master集群。
1. 单Master集群
如图
我们有很多个node节点,只有一个Master节点,在node和Master中有其相关的组件,比如node中有kubelet、kube-proxy,Master中有API server、scheduler、Controller-manager等组件。在整个集群中通过一个Master节点管理所有的node节点。这种方式的缺点很明显,如果管理者Master挂掉后就无法管理node节点,因此在实际的工作中我们经常做的是多Master集群。
2. 多Master集群
如图
就是在单Master的基础之上将Master变成多台。我们又多个node节点,内部有其相关的kubelet、kube-proxy等组件。但有多个Master,多Master通过nodebalance负载均衡进行管理。通过负载均衡到不同的Master中去,node节点也通过负载均衡完成各自的任务。多Master应用场景中也被成为高可用集群,比如Master1挂掉了,Master2、3还能继续提供服务。
2.1.2 搭建Kubernetes服务器硬件配置要求
测试环境下
- Master节点要求2核CPU,内存4G、硬盘20G。
- node节点,Master主要从事管理工作,node则是工作节点是做具体事情的,在测试环境中node至少要是4核CPU,内存8G、硬盘40G以上。
生产环境下,生产环境下对于配置会有更高的要求。
- Master至少是8核CPU,16G内存,硬盘100G
- node节点至少是16核CPU、64G内存,硬盘500G等
2.1.3 搭建Kubernetes集群部署方式
目前生产部署Kubernetes集群主要有两种方式:
1. kubeadm
kubeadm是一个Kubernetes部署工具,这种方式很简单,只需要两个命令即kubeadm init(直接初始化)和kubeadm join(把node节点加到Master中去),用于快速部署Kubernetes集群。这种方式的好处在于可以用很短时间把我们的Kubernetes集群快速部署出来。很多事情他已经开展,不需要我们自己做额外的处理。
2. 二进制包
这种方式相对比较麻烦,因为他需要你手动下载很多的安装包,手动部署每个组件,比如node中的那些组件,Master中的那些组件,都需要独立手动部署。这种部署方式过程比较麻烦,但好处在于一旦集群出现问题很快就能找到哪个部分出现了问题。虽然部署麻烦但是我们可以从中知道每一步是如何做到的,有利于后期的维护。
从githup下载发型版的二进制包,手动部署每个组件,组成Kubernetes集群。
kubeadm降低了部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes集群,虽然手动部署麻烦,但可以学习很多工作原理,也利于后期维护。