《Kubernetes部署篇:使用kubespray工具部署高可用K8S集群方案操作指南》



一、部署工具简介

根据公司业务场景的不同,你可能需要部署几套或几十套K8S高可用集群,面对繁琐的部署步骤,你可能望而却步,急需自动化的K8S部署工具,kubespray就可以很好的解决你的问题。这是官方推荐的部署工具,稳定性及可靠性还是值得使用。


二、部署方案介绍

2.1、从部署网络环境及工具类型,部署方案有如下四种:

方案一:基于docker使用kubespray工具在线部署高可用kubernetes集群(国内互联网环境)
方案二:基于containerd使用kubespray工具在线部署高可用kubernetes集群(国内互联网环境)
方案三:基于docker使用kubespray工具离线部署高可用kubernetes集群(国内专网环境)
方案四:基于containerd使用kubespray工具离线部署高可用kubernetes集群(国内专网环境)

2.2、从部署方式及配置修改,部署方案有如下四种:

《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案一)》
《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案二)》
《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案三)》
《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》
《Kubernetes部署篇:基于docker使用kubespray工具部署离线高可用K8S集群(国内专网方案)》

说明:
1、国内互联网方案一和国内互联网方案二大同小异,主要的区别是ansible及python环境,方案二采用docker来部署ansible及python环境,避免与宿主机上的ansible及python环境冲突导致部署失败的问题。
2、国内互联网方案三和国内互联网方案四大同小异,主要的区别通过不同的方法来修改内网部署文件下载地址和内网私有镜像仓库地址。
3、国内互联网方案一和国内互联网方案二采用的本地缓存目录kubespray_cache下载文件及镜像的方式来部署的,国内互联网方案三和国内互联网方案四采用的内部http文件服务和私有镜像仓库的方式来获取部署二进制包、安装包及相关镜像的。
4、无论是本地缓存文件及镜像、还是内部提供http文件下载及私有镜像仓库,都需要提前下载好相关文件及镜像,建议找一台能够访问这些文件及镜像地址的主机,或者你可以找到相应国内的文件及镜像地址。
5、在国内专网环境下,无法连外网,要实现kubespray离线部署主要要做四方面工作:1、部署环境依赖包安装;2、内网yum源仓库;3、内网私有镜像仓库;4、内网部署安装包下载


三、kubespray扩展集群

参考官方kubespray添加及删除节点

3.1、添加节点

1、在inventory/mycluster/hosts.yaml文件中新增节点信息

[root@k8s-sdjw-ansible-7 kubespray-2.18.1]# vim inventory/mycluster/hosts.yaml

如下图所示:
在这里插入图片描述
2、运行ansible-playbook 命令,替换cluster.yml为scale.yml

[root@k8s-sdjw-ansible-7 kubespray-2.18.1]# ansible-playbook -i inventory/mycluster/hosts.yaml scale.yml -b -v

3.2、删除节点

1、运行ansible-playbook 命令,替换cluster.yml为remove-node.yml

[root@k8s-sdjw-ansible-7 kubespray-2.18.1]# ansible-playbook -i inventory/mycluster/hosts.yaml remove-node.yml -b -v --extra-vars "node=k8s-sdjw-test-22"

说明:以上添加节点及删除节点操作,在当前实验环境下验证通过。


3.3、升级集群

参考官方kubespray升级及卸载集群

[root@k8s-sdjw-ansible-7 kubespray-2.18.1]# ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=v1.22.8

3.4、卸载集群

#1、使用ansible-playbook命令卸载集群
[root@k8s-sdjw-ansible-7 kubespray-2.18.1]# ansible-playbook -i inventory/mycluster/hosts.yaml reset.yml

#2、每台node都要执行
rm -rf /etc/kubernetes/
rm -rf /var/lib/kubelet
rm -rf /var/lib/etcd
rm -rf /usr/local/bin/kubectl
rm -rf /etc/systemd/system/calico-node.service
rm -rf /etc/systemd/system/kubelet.service

#3、重启服务器
reboot

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值