Kubernetes集群搭建与Pod管理入门:从单机 Minikube 到多节点排障实战
开场:OK so,今天我们直接把 Kubernetes 跑起来
兄弟们,镜头拉近!你现在看到的是一套能落地的 Kubernetes 集群搭建与 Pod 管理入门流程,不讲空话,直接上手。接下来我会先用最省事的免费方案把环境跑通,再告诉你多节点怎么搭、Pod 挂了怎么查、镜像拉不下来怎么修。你照着做,基本就能把“Kubernetes集群搭建教程”真正跑起来。
先说结论:新手最稳的是Minikube或kind,因为它们不需要你先准备一堆云资源,适合本地练习。等你理解了 Pod、Deployment、Service 的关系,再上 kubeadm 做多节点集群,效率最高。别一上来就硬刚生产环境,那样你会被证书、CNI、镜像仓库一起围殴。
Chapter 1:先把本地集群点亮,Now watch this
我这里用 Ubuntu 22.04 演示,CPU 2 核以上、内存 4GB 起步。接下来先装 docker 和 kubectl,然后起一个最小集群。
- 安装 kubectl:
sudo apt-get install -y kubectl - 安装 Minikube:按官方包或二进制方式都行,这里不展开下载页,重点是确保版本匹配。
- 启动集群:
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:从“能跑”到“能管”,把排障动作做成肌肉记忆
接下来是你真正会高频用到的几条命令。记住,管理 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 访问不到,我下一集就按你的问题来拆。