自己搭建k8s步骤详解?从零开始轻松搞定部署

发布时间 - 2025-12-06 22:32:17    点击率:

今天闲着没事干,寻思着折腾一下k8s,毕竟这玩意儿现在挺火的,不会用好像有点落伍。网上教程一大堆,但都是东一榔头西一棒子,看着头疼。干脆自己从头搞一遍,记录一下踩坑过程。

准备工作

我先找了两台闲置的云服务器,系统都装成Ubuntu 22.04。为啥用这个版本?没啥特别原因,就是顺手。然后按照老规矩,第一步先更新系统。

  • 更新系统sudo apt update && sudo apt upgrade -y,这步没啥好说的,等着就行。
  • 关掉swap:k8s不喜欢swap,直接sudo swapoff -a,再改一下fstab文件,免得重启又恢复了。
  • 装Docker:毕竟k8s得跑容器,先curl -fsSL 某网址 sh把Docker搞定,再启动服务。

安装k8s组件

接下来就是重头戏了。先添加k8s的源,然后安装三件套:kubeadm、kubelet、kubectl。

  • kubeadm:用来快速初始化集群的,省事儿。
  • kubelet:每个节点都得跑的服务,管容器的。
  • kubectl:命令行工具,后面操作集群全靠它。

装完以后,还得改点配置,比如让kubelet用systemd管理cgroup,不然启动会报错。这步坑了我半小时,网上搜了半天才发现问题。

初始化主节点

准备工作差不多了,开始初始化主节点。直接sudo kubeadm init,结果第一次报错,说镜像拉取失败。得,国内网络老问题,只好换源,手动拉镜像再重试。

第二次跑通了,屏幕上哗一堆信息,最关键的是那行kubeadm join命令,先赶紧存下来。接着按提示配置kubectl权限,不然普通用户没法用。

加入工作节点

主节点搞定了,另一台服务器如法炮制,装好组件后,直接把刚才存的join命令贴过去。等了几分钟,用kubectl get nodes一看,俩节点都Ready了,心里踏实一半。

部署网络插件

节点是有了,但没网络插件还是白搭。选了Calico,因为文档多。照着官网抄了一段yaml,kubectl apply一下,等了一会儿,Pod状态终于正常了。

测试一下

部署个nginx试试水。写个简单的yaml文件,创建Pod和Service。用kubectl get pods看到Running,再curl一下Service的IP,能访问就大功告成了。

整体折腾下来花了小半天,大部分时间都在查错。总结就是:网络问题占八成,剩下两成是配置手滑。下次再搞估计能快点儿,毕竟坑都踩过了。