实战-Sealos一键部署k8s集群-20240307(测试成功)
实战-Sealos一键部署k8s集群-2024.3.7(测试成功)
目录
[toc]
原文链接
https:sealosv5.0.0-beta4k8sv1.28.7(当前时间:2024年3月7日k8s最新版本为v1.29.2)helm:v3.9.4cilium:v1.14.7
实验软件
无。
Sealos 简介
在对容器运行时和 K8s 有了一个整体上的认识后,接下来我们就需要来搭建一个 K8s 集群了,搭建 K8s 的方式方法有很多,主要有二进制和 Kubeadm(容器)两种方式,对于初学者来说不建议使用二进制方式搭建,因为二进制方式搭建 K8s 集群需要手动安装各种组件,而且还需要手动配置各种组件,非常麻烦,而且容易出错。
更推荐大家使用 Kubeadm 快速搭建一套集群起来,先用起来,等熟悉了之后再去了解各个组件的原理和配置。
另外,还有一种方式是使用 Kind
工具来搭建集群,Kind
是一个用于在 Docker 容器中运行本地 Kubernetes 集群的工具,它使用 Docker 容器作为节点,这样就可以在本地快速搭建一个 K8s 集群,非常适合用于本地开发和测试。
前面四期我们都是重点讲解的使用 Kubeadm 来搭建 K8s 集群,这一期我们讲使用一个更方便快捷的工具 Sealos
来搭建 K8s 集群,Sealos
是一个基于 Kubeadm 的 K8s 一键安装工具,它可以帮助我们快速搭建一个 K8s 集群,而且还可以帮我们自动安装一些常用的插件,甚至要搭建一个高可用的集群也是非常方便的。
Sealos官方文档:
https:172.29.9.80 master172.29.9.81 node1172.29.9.82 node2EOF
在每个节点上添加 hosts 信息:
节点的 hostname 必须使用标准的 DNS 命名,另外千万别用默认 localhost
的 hostname,会导致各种错误出现的。在 Kubernetes 项目里,机器的名字以及一切存储在 Etcd 中的 API 对象,都必须使用标准的 DNS 命名(RFC 1123)。可以使用命令 hostnamectl set-hostname xxx
来修改 hostname。
(2)配置防火墙等、关闭swap分区、时间服务;
systemctlstopfirewalld&&systemctldisablefirewalldsystemctlstopNetworkManager&&systemctldisableNetworkManagersetenforce0sed-is/SELINUX=enforcing/SELINUX=disabled//etc/selinux/configswapoff-ased-ri's/.*swap.*/#&/'/etc/fstabyuminstallchrony-ysystemctlenablechronyd--nowchronycsources
(3)升级内核到最新版本
uname-a# 载入公钥rpm--importhttps:# 安装ELReporpm-Uvhhttp:# 载入elrepo-kernel元数据yum--disablerepo=\*--enablerepo=elrepo-kernelrepolist# 查看可用的rpm包yum--disablerepo="*"--enablerepo="elrepo-kernel"listavailable# 安装最新版本的lt kernelyum--disablerepo=\*--enablerepo=elrepo-kernelinstallkernel-lt-y#如果是安装指定版本#yum --enablerepo=elrepo-kernel install kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64 kernel-lt-5.4.225-1.el7.elrepo.x86_64 -y #注意包的个数#yum install -y kernel-ltif[$?-eq0];thengrub2-set-default0&&grub2-mkconfig-o/etc/grub2.cfggrubby--args="user_namespace.enable=1"--update-kernel="$(grubby--default-kernel)"fiecho'Please reboot your system quick !!!'rebootuname-a
升级后当前内核版本:
Linuxmaster5.4.270-1.el7.elrepo.x86_64
升级前默认系统内核:
kernel-3.10.0-957.el7.x86_64
因为本次使用的CNI是
cilium
,因此对内核的版本要求会高些,这里需要先升级内核的。(一般是5以上就行)
具体内核升级脚本: