如何安装生产环境下的高可用k8s集群
接上篇
规划k8s集群
本次我预备了6台VMs, 1台作为Jump server,用来部署Ansible并负责在其他5台设备上部署k8s。这台服务器后续可能还要做nfs server。
3台做master,为了给etcd做高可用。(Etcd采用RAFT的算法,需要至少3台服务器部署才可以实现高可用);2台做worker,后续再加几台做worker,同时实践下如何用Kubespray做k8s集群的升级和变更。
总结, 1台堡垒机,k8s cluter:3台master,2台worker。
堡垒机安装必要组件
以下安装均以名叫bill的用户进行,非root用户。后续运行ansible到其他服务器也是bill用户,所以需要其他所有服务器也有bill用户,切bill用户可以免密码进行sudo。
不要嫌麻烦就哪里都用root,这不是个好习惯。
sudo apt update
sudo apt install -y python3-pip sshpass git #安装一些必须插件
sudo pip install ansible
sudo apt install ansible -y #pip 还是apt安装ansible均可,ansible的版本不能太低,Kubersray安装前会对ansible,python,jinjia等等进行版本检测的。
git clone https://github.com/kubernetes-sigs/kubespray.git #我看大部分文档在这里会使用 --recurse-submodules 相关git参数,我没用也没出问题。
# submodules相关git参数,是用来完整下载git项目的独立的以另一个git repo存在的子项目的。
# 整个kuberspray 就是需要的Kubespray 仓库。具体的目录结构和每个目录的功能,我想有机会的时候单独写一篇。
cd kubespray/
pip install -r requirements.txt --break-system-packages # --break-system-packages 这个是我加上去的, 确保kubespray可以安装到必须的版本的package,即使整个版本和系统本身冲突。
echo $PATH