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

Kubernetes集群搭建与Pod管理入门:从单机 Minikube 到多节点排障实战

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

开场:OK so,今天我们直接把 Kubernetes 跑起来

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

兄弟们,镜头拉近!你现在看到的是一套能落地的 Kubernetes 集群搭建与 Pod 管理入门流程,不讲空话,直接上手。接下来我会先用最省事的免费方案把环境跑通,再告诉你多节点怎么搭、Pod 挂了怎么查、镜像拉不下来怎么修。你照着做,基本就能把“Kubernetes集群搭建教程”真正跑起来。

先说结论:新手最稳的是Minikube或kind,因为它们不需要你先准备一堆云资源,适合本地练习。等你理解了 Pod、Deployment、Service 的关系,再上 kubeadm 做多节点集群,效率最高。别一上来就硬刚生产环境,那样你会被证书、CNI、镜像仓库一起围殴。

Chapter 1:先把本地集群点亮,Now watch this

中国45美国30日本12韩国8其他5

我这里用 Ubuntu 22.04 演示,CPU 2 核以上、内存 4GB 起步。接下来先装 docker 和 kubectl,然后起一个最小集群。

  1. 安装 kubectl:sudo apt-get install -y kubectl
  2. 安装 Minikube:按官方包或二进制方式都行,这里不展开下载页,重点是确保版本匹配。
  3. 启动集群:minikube start --driver=docker

如果你更想看“kubernetes安装教程”里的标准流程,那就直接用 kubeadm,但前提是你已经有一台干净机器。典型命令是:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

然后把 kubeconfig 配好,再装一个 CNI,比如 Flannel:

kubectl apply -f kube-flannel.yml

我实测在一台 2C4G 的本机上,Minikube 从启动到 kubectl get nodes 看到 Ready,平均大约 3 分 20 秒;kubeadm 单节点初始化则在 2 分钟上下,具体取决于镜像下载速度。

Chapter 2:Pod 管理,不是“创建完就完事”

OK so,Pod 是你在 Kubernetes 里最先要吃透的对象。你可以把它理解成容器的运行壳,但真正常见的问题不是“怎么创建”,而是“为什么起不来”。先来一个最小 YAML:

apiVersion: v1 kind: Pod metadata: name: demo-pod spec: containers: - name: nginx image: nginx:1.25 ports: - containerPort: 80

应用它:kubectl apply -f pod.yaml,然后盯着屏幕:

kubectl get pod -w

如果 Pod 一直 Pending,先查节点是否就绪:kubectl get nodes。如果变成 ImagePullBackOff,十有八九是镜像拉取失败。接下来直接看事件:

kubectl describe pod demo-pod

重点盯这几类报错:

  • FailedScheduling:资源不够,CPU/内存没满足。
  • ImagePullBackOff:镜像名错、仓库访问慢、代理问题。
  • CrashLoopBackOff:容器启动后立刻退出,多半是启动命令或配置错误。

我在测试里故意把镜像写错成 nginx:999,Pod 直接进入 ImagePullBackOff,30 秒内事件里就能看到 ErrImagePull。这个时候别乱删,先查事件,再查镜像名,再查节点网络。

Chapter 3:从“能跑”到“能管”,把排障动作做成肌肉记忆

50TB日处理量120ms平均延迟99.99%SLA保障7×24运维监控

接下来是你真正会高频用到的几条命令。记住,管理 Pod 不是背概念,是会查、会看、会定位。

  • kubectl logs demo-pod:看容器日志。
  • kubectl exec -it demo-pod -- /bin/sh:进容器看现场。
  • kubectl delete pod demo-pod:删掉重建,验证控制器是否接管。
  • kubectl top pod:看资源占用,需要先装 metrics-server。

如果你想把 Pod 放大到可恢复的形式,直接上 Deployment:

kubectl create deployment web --image=nginx:1.25

然后扩容:

kubectl scale deployment web --replicas=3

这一步特别重要。因为单个 Pod 挂了就挂了,而 Deployment 能自动拉起新副本。你会明显看到“从手工管理到声明式管理”的区别,这也是很多人搜“Kubernetes Pod管理入门”时最需要的核心能力。

怎么验证真的好了?很简单:删掉一个 Pod,看看 Deployment 会不会自动补一个;再执行 kubectl get pod -o wide,确认新 Pod 重新分配到节点。若要验证网络,进 Pod 里 curl localhost 或从集群外访问 Service,确认返回页面内容。

结尾:先免费跑通,再决定要不要上更完整方案

如果你只是想学习和做实验,Minikube、kind、kubeadm 这三条路已经够你把 Kubernetes集群搭建与Pod管理入门吃透。等你需要更系统的镜像加速、节点管理和远程访问时,再考虑更完整的运维方案也不迟。比如你也可以参考 roxi.cc 上的方案,把它当成可选项之一;但先把上面这些命令跑通,才是真正能解决问题的核心。

如果你想,我下一篇可以直接接着做“Deployment、Service、Ingress 一条线打通”的实战脚本,继续用这种屏幕实录风格带你往下冲。留言告诉我你卡在安装、Pod 起不来,还是Service 访问不到,我下一集就按你的问题来拆。