发布于2026-09-02 阅读(0)
扫一扫,手机访问
在 Kubernetes 中,执行创建命令并不等于服务已就绪。本文演示如何创建一个最小化的 nginx Deployment,并通过检查 Deployment 的 READY 与 AVAILABLE 字段,以及 Pod 的 Running 状态来确认工作负载是否真正可用。当遇到 Pending 或 CrashLoopBackOff 等异常时,可通过查看事件和日志快速定位是调度、镜像拉取还是应用启动阶段的问题。
在创建资源前,务必确认当前操作的环境。执行 kubectl config current-context 确认当前操作的集群,再用 kubectl get namespace 检查目标命名空间。公司或共享集群上,请先确认你有权创建 Deployment;本地 minikube、kind 或测试集群则更适合第一次练习。
不要把命名空间省略当成理所当然。省略 -n 时通常使用当前上下文的默认命名空间;如果稍后查询时切换了命名空间,就会出现“刚创建的资源不见了”的假象。
在测试命名空间执行 kubectl create deployment nginx-demo --image=nginx。nginx-demo 是 Kubernetes 资源名,nginx 是容器镜像。实际项目应根据组织要求固定镜像标签,避免漂移版本导致后续执行结果不一致。
命令返回 deployment.apps/nginx-demo created 后不要立即结束。Deployment 控制器还需要创建 ReplicaSet 和 Pod,节点也需要拉取镜像并启动容器。第一次拉取镜像的时间会受网络和节点缓存影响,不应假设固定秒数内完成。
执行 kubectl get deployment nginx-demo。单副本练习中,READY 最终应为 1/1,UP-TO-DATE 与 AVAILABLE 应为 1。如果 READY 暂时为 0/1,先查看 Pod 状态,不要反复执行创建命令造成同名冲突。
执行 kubectl get pods -l app=nginx-demo。-l 用标签筛选与当前 Deployment 相关的 Pod,避免在资源较多的命名空间中看错对象。目标状态是 READY 1/1、STATUS Running,并且 RESTARTS 没有持续增长。

需要进一步确认时,可对具体 Pod 执行 kubectl get pod POD_NAME -o yaml,或使用 kubectl describe pod POD_NAME。重点核对标签、ownerReferences、容器镜像与事件,这些信息能回答“该 Pod 由谁管理”以及“为什么还没有就绪”。

当 Pod 未进入 Running 状态时,可根据具体状态选择排查方向:
READY 长时间为 0/1:如果状态已是 Running,继续检查就绪探针和容器内部应用;不要把 Running 等同于业务已可用。本练习使用官方 nginx 镜像作为最小示例,真实服务还应配置资源限制、探针和发布策略。
正确的入门顺序是:确认集群上下文和命名空间,创建名称明确的 Deployment,再分别查看 Deployment 汇总状态和 Pod 运行状态。READY、AVAILABLE 与 Running 都达到预期后,才可以把该资源记为创建成功。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9