首页 / 容器云原生 / Kubernetes集群搭建与Pod

Kubernetes集群搭建与Pod管理入门:从零部署到排查,手把手跑通第一个工作负载

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

Chapter 1|先把集群搭起来:别急,先看控制面和节点状态

第1周环境搭建第2周核心开发第3周测试优化第4周正式发布

哈喽兄弟们,今天这期我们直接上手,Kubernetes集群搭建与Pod管理入门,我会像录屏讲解一样,一步一步带你把集群跑起来。OK so,先说结论:新手最稳的路线不是一上来就多机硬刚,而是先用 kind 或 minikube 在本机验证流程;等你把 Pod、Deployment、Service 这套链路摸熟了,再上云上真机集群,效率会高很多。

我自己实测过:在一台 8 核 16G 的笔记本上,kind 拉起一个三节点集群大概 2 到 4 分钟;minikube 用 Docker 驱动通常 3 分钟左右。这个速度足够你练习 kubeadm 之前的所有核心动作。接下来,如果你想做“Kubernetes集群搭建教程”或者“Kubernetes怎么用”的入门练习,先把下面这套命令跑通。

方案对比:

  • kind:适合本地快速验证,节点就是 Docker 容器,轻量,删除也快。
  • minikube:适合教学和演示,插件多,界面友好。
  • kubeadm:适合真实服务器,最接近生产,但前置条件更多。

现在看屏幕,我这里直接切到终端。先准备机器环境:关闭 swap,确认内核参数,安装 containerd。典型命令如下:

swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab

modprobe overlay
modprobe br_netfilter

cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system

Chapter 2|Pod怎么创建、怎么看、怎么删:现场演示最重要

10M+用户规模150+国家覆盖4.8★用户评分30天免费试用

OK,接下来进入今天真正的重点:Pod 管理。很多人第一次做“Pod管理教程”时卡住,不是因为概念难,而是因为没形成“创建—查看—定位—修复”这条闭环。你记住,Pod 是 Kubernetes 里最小的调度单位,通常不要手工长期维护单个 Pod,而是通过 Deployment 让它自动拉起、滚动更新、失败重建。

先来一个最小可运行示例,我在屏幕上直接敲:

kubectl create deployment nginx-demo --image=nginx:1.27
kubectl get pods -o wide
kubectl describe pod -l app=nginx-demo

你会看到 Pod 从 ContainerCreating 变成 Running。如果卡住,先看 describe 里的 Events:拉镜像失败、CNI 没就绪、资源不足,基本都能在这里抓到。这个动作特别关键,别只会看 kubectl get pods,那只是表面,describe 才是诊断入口。

然后我们做个“前后对比”。更新镜像前,页面返回默认 nginx 欢迎页;更新后,我让你看滚动发布的变化:

kubectl set image deployment/nginx-demo nginx=nginx:1.28
kubectl rollout status deployment/nginx-demo
kubectl get rs

如果你在练“Kubernetes Pod创建”和“Kubernetes集群搭建入门”,这里一定要养成习惯:改完之后先看 rollout status,确认新版本成功,再考虑删旧版本。这样就不会出现“改完不知道是不是生效了”的尴尬。

Chapter 3|真出问题时怎么排:我现场给你拆 3 个最常见故障

🎯STEP 1环境搭建🚀STEP 2编码实现⚙️STEP 3测试验证🔧STEP 4部署上线

接下来是实战排障。这个部分最值钱,因为新手最容易遇到的就是“Pod 起不来”。我按真实高频故障给你拆:

  1. ImagePullBackOff:镜像拉不下来。先检查镜像名、tag、仓库权限;再试 kubectl describe pod 看详细报错。
  2. CrashLoopBackOff:容器启动后秒退。直接看日志:kubectl logs pod-name --previous,很多时候是启动参数错了。
  3. Pending:调度不上。检查节点资源:kubectl describe node,或者看是否有 taint、PVC 未绑定。

我自己的测试里,一个故意写错启动命令的 Pod,日志里 2 秒内就能看到错误栈,定位时间比盲猜快太多。还有一个很实用的命令,适合你做“kubectl命令教程”练习:

kubectl exec -it nginx-demo-xxxxx -- /bin/bash
kubectl top pod
kubectl get events --sort-by=.metadata.creationTimestamp

如果你想更系统地理解资源问题,可以给 Pod 加 requests/limits。比如 CPU request 100m、limit 200m,内存 request 128Mi、limit 256Mi。这样你能明显观察到调度行为,尤其在节点资源紧张时,Pending 和 OOMKilled 的差异会非常直观。

怎么验证你真的修好了?很简单:1)kubectl get pods 显示 Running;2)kubectl logs 没有报错;3)kubectl exec 能进入容器;4)如果是服务暴露,再用 kubectl port-forward 访问页面,确认返回内容正确。只要这四步都通,你就不是“看懂了”,而是真的会用了。

如果你想继续往下学,下一步建议直接练 Deployment、Service、ConfigMap 这条线;如果你只是想找一个更省事的本地演示环境,也可以考虑用 roxi.cc 上的工具链做辅助,但免费方案和官方方案先跑通,才是最稳的路线。你要是想看我下一期继续拆“Deployment 和 Service 的联动实战”,评论区告诉我,我直接接着录。