2026 Kubernetes Tutorial: Build a Cluster in 13 Steps(2026-07-04)
如果你还在手动部署应用、疲于应对服务器宕机,那么是时候拥抱Kubernetes了。截至2026年,全球已有超过70%的企业在生产环境中运行K8s,而学习建立一个集群已成为DevOps工程师的必备技能。本文将用13个清晰步骤,带你从零搭建一个可用集群——不需要昂贵的硬件,只需要一台电脑和耐心。
为什么你需要一个自己的集群?
想象一下:你的应用突然流量暴增,传统架构需要你熬夜加机器、改配置,而Kubernetes能自动扩展Pod数量,在30秒内完成响应。根据CNCF 2025年报告,使用K8s的企业平均部署速度提升4倍,故障恢复时间缩短60%。更重要的是,掌握集群搭建能让你理解容器编排的核心逻辑,这在简历上是实打实的加分项。
案例:从混乱到有序
一家中型电商公司在2025年黑五期间,由于手动管理20台服务器,导致支付系统崩溃3小时。迁移到K8s后,他们在2026年同期的流量峰值下实现了99.99%可用性。关键就在于集群的自动伸缩和自愈能力。
13步搭建实战指南
我们将使用kubeadm工具在3台Ubuntu 22.04虚拟机上部署一个1主2从的集群。以下步骤基于Kubernetes 1.28版本。
第一步:环境准备
- 每台节点至少2核CPU、2GB内存、20GB磁盘
- 所有节点安装Docker(推荐v24.0)和cri-dockerd
- 关闭swap:
sudo swapoff -a
第二步:安装kubeadm、kubelet、kubectl
sudo apt-get update && sudo apt-get install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00
实用建议:锁定版本避免自动更新导致集群不稳定,使用apt-mark hold kubelet kubeadm kubectl。
第三步:初始化控制平面(在主节点执行)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
注意记录输出的kubeadm join命令,后面会用到。
第四步:配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
第五步:安装网络插件(Flannel)
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
等待所有Pod变为Running状态:kubectl get pods -n kube-system
第六步:加入工作节点
在所有worker节点上执行主节点生成的kubeadm join命令。如果token过期,在主节点重新生成:kubeadm token create --print-join-command
第七步:验证集群状态
kubectl get nodes
你应该看到所有节点状态为Ready。这时已经完成了基础集群搭建!
第八步:部署一个测试应用
kubectl create deployment nginx --image=nginx:latest
kubectl expose deployment nginx --port=80 --type=NodePort
访问http://任意节点IP:NodePort,看到Nginx欢迎页即成功。
第九步:启用仪表盘(可选)
通过kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml安装,然后创建管理员token查看资源。
第十步:设置资源配额
为命名空间设置CPU和内存限制,防止某个应用耗尽集群资源:
apiVersion: v1
kind: ResourceQuota
metadata:
name: app-quota
spec:
hard:
requests.cpu: "2"
requests.memory: "4Gi"
limits.cpu: "4"
limits.memory: "8Gi"
第十一步:配置持久化存储
使用hostPath或NFS为有状态应用(如数据库)提供稳定存储。推荐部署Rook Ceph实现分布式存储。
第十二步:开启自动伸缩
kubectl autoscale deployment nginx --min=2 --max=10 --cpu-percent=50,当CPU使用率超过50%时,Pod数自动膨胀。
第十三步:日志与监控
部署Prometheus + Grafana组合,实时查看集群指标。kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml
常见错误与解决方案
- 节点NotReady:检查网络插件是否安装,或查看kubelet日志
journalctl -u kubelet -f - Pod一直Pending:可能资源不足,用
kubectl describe pod <pod-name>查看具体原因 - API服务器超时:检查防火墙是否开放6443端口
下一步:进入生产环境
集群搭建只是第一步。接下来建议:
- 学习Helm部署复杂应用(如Jenkins、GitLab)
- 实践滚动更新和回滚
- 配置RBAC控制权限
- 研究服务网格(Istio)
今天就开始行动吧:打开你的虚拟机,按照这13步去执行。第一次搭建可能需要两小时,但你会收获远超时间的价值。在评论区分享你搭建成功的那一刻,或者遇到的坑——我们互相帮助,共同进步。
免责声明:本文提供的步骤和建议基于2026年主流工具版本,实际部署中可能因环境差异需调整。生产环境中请先在测试集群验证,并对关键数据做好备份。作者不承担因操作失误导致的任何损失。