当前位置:

首页 > 系统应用 > Kubernetes入门:用kubectl创建并查看第一个Deployment

Kubernetes入门:用kubectl创建并查看第一个Deployment

本文指导使用 kubectl 创建最小 nginx Deployment,并通过 READY、UP-TO-DATE、AVAILABLE 与 Pod Running 状态进行验收。重点区分“命令已接收”和“工作负载已可用”,并在状态异常时利用 Pod 详情与事件输出定位镜像、调度或启动问题。

在 Kubernetes 中,执行创建命令并不等于服务已就绪。本文演示如何创建一个最小化的 nginx Deployment,并通过检查 Deployment 的 READY 与 AVAILABLE 字段,以及 Pod 的 Running 状态来确认工作负载是否真正可用。当遇到 Pending 或 CrashLoopBackOff 等异常时,可通过查看事件和日志快速定位是调度、镜像拉取还是应用启动阶段的问题。

执行前确认集群上下文和命名空间

在创建资源前,务必确认当前操作的环境。执行 kubectl config current-context 确认当前操作的集群,再用 kubectl get namespace 检查目标命名空间。公司或共享集群上,请先确认你有权创建 Deployment;本地 minikube、kind 或测试集群则更适合第一次练习。

不要把命名空间省略当成理所当然。省略 -n 时通常使用当前上下文的默认命名空间;如果稍后查询时切换了命名空间,就会出现“刚创建的资源不见了”的假象。

创建一个单副本 nginx Deployment

第1步:使用明确的名称和镜像

在测试命名空间执行 kubectl create deployment nginx-demo --image=nginx。nginx-demo 是 Kubernetes 资源名,nginx 是容器镜像。实际项目应根据组织要求固定镜像标签,避免漂移版本导致后续执行结果不一致。

命令返回 deployment.apps/nginx-demo created 后不要立即结束。Deployment 控制器还需要创建 ReplicaSet 和 Pod,节点也需要拉取镜像并启动容器。第一次拉取镜像的时间会受网络和节点缓存影响,不应假设固定秒数内完成。

用 READY 和 AVAILABLE 完成双层验收

第2步:查看 Deployment 汇总状态

执行 kubectl get deployment nginx-demo。单副本练习中,READY 最终应为 1/1,UP-TO-DATE 与 AVAILABLE 应为 1。如果 READY 暂时为 0/1,先查看 Pod 状态,不要反复执行创建命令造成同名冲突。

第3步:检查 Pod 是否进入 Running

执行 kubectl get pods -l app=nginx-demo。-l 用标签筛选与当前 Deployment 相关的 Pod,避免在资源较多的命名空间中看错对象。目标状态是 READY 1/1、STATUS Running,并且 RESTARTS 没有持续增长。

kubectl 终端输出显示 nginx Deployment 可用且 Pod 处于 Running
图1:Deployment 的 READY 与 AVAILABLE 均达到期望,对应 Pod 也已进入 Running。

查看 Pod 详细状态时识别所属对象

第4步:通过标签与所有者定位资源关系

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

kubectl 终端显示 nginx Pod 列表及 YAML 中的标签和容器信息
图2:通过 Pod 标签和 ownerReferences 可核对它与 Deployment 的归属关系。

根据 Pod 状态选择排错入口

当 Pod 未进入 Running 状态时,可根据具体状态选择排查方向:

  • Pending:通常先查看调度事件,确认节点资源、污点或持久卷等条件。
  • ImagePullBackOff:检查镜像名、标签、网络与私有仓库凭据。
  • CrashLoopBackOff:查看容器日志和启动命令,不要只删除 Pod,因为控制器会按原配置再创建一个。

READY 长时间为 0/1:如果状态已是 Running,继续检查就绪探针和容器内部应用;不要把 Running 等同于业务已可用。本练习使用官方 nginx 镜像作为最小示例,真实服务还应配置资源限制、探针和发布策略。

总结 Deployment 的最小完成闭环

正确的入门顺序是:确认集群上下文和命名空间,创建名称明确的 Deployment,再分别查看 Deployment 汇总状态和 Pod 运行状态。READY、AVAILABLE 与 Running 都达到预期后,才可以把该资源记为创建成功。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用 Kubernetes
相关文章 更多
使用Golang的Web框架Echo框架和Kubernetes搭建应用
使用Golang的Web框架Echo框架和Kubernetes搭建应用

随着云计算和容器化技术的发展,越来越多的企业开始使用Kubernetes来管理和部署应用程序。而Golang作为一种高效性能的开发语言越来越受到开发者的青睐。本文将介绍如何使用Golang的Web框架Echo框架和Kubernetes搭建应用。安装Go和Echo框架首先,我们需要在本地安装Golang开发环境和Echo框架。Golang和Echo框架的安装可

在Go语言中使用Google Kubernetes Engine(GKE):完整指南
在Go语言中使用Google Kubernetes Engine(GKE):完整指南

近年来,Kubernetes已经成为了容器编排平台的事实标准,而GoogleKubernetesEngine(GKE)则是Google云平台上提供的一种全托管的Kubernetes引擎。它不仅提供了自动化的容器编排、可扩展性和高可用性,还能够快速启动和调整,将代码部署变得更加简单。本文将为大家介绍如何在Go语言中使用GKE,希望本文可以成为使用GKE的完

使用Golang的Web框架Iris框架和Kubernetes搭建微服务
使用Golang的Web框架Iris框架和Kubernetes搭建微服务

随着互联网的发展,越来越多的应用系统采用微服务架构来提高系统的稳定性和扩展性。而在微服务架构中,服务治理、监控、部署等方面的要求比较高,因此需要选择适合的框架和工具来进行开发。本文将介绍如何使用Golang的Web框架Iris框架和Kubernetes搭建微服务。Iris框架Iris框架是一个快速、简洁且易于使用的Golangweb框架。它具有基于规则的路

Redis在Kubernetes的应用详解
Redis在Kubernetes的应用详解

Kubernetes是一个现代化的容器编排系统,其强大的伸缩性和可靠性对于开发和运维人员来说无疑是非常重要的。其中的一个关键应用就是Redis,作为一个高性能缓存和数据库的组合,Redis在Kubernetes的应用也越来越受到关注。本文将详细介绍Redis在Kubernetes中的应用,通过实际案例来说明如何在Kubernetes平台上部署、管理、监控Re

使用Spring Boot和Kubernetes构建容器化应用
使用Spring Boot和Kubernetes构建容器化应用

随着云计算技术的发展,容器化应用已经成为了部署和管理应用的一个重要方法。随着这一趋势的发展,很多开发者在学习和使用容器化应用的过程中选择了使用SpringBoot框架和Kubernetes这个容器调度工具。本文将介绍如何使用SpringBoot和Kubernetes来轻松地实现容器化应用。什么是SpringBoot?SpringBoot是一个基于Sp

大规模部署和管理 PHP 开发环境:Docker Swarm 和 Kubernetes 的应用
大规模部署和管理 PHP 开发环境:Docker Swarm 和 Kubernetes 的应用

在现代软件开发中,快速部署和扩展已成为软件架构的重要方面。而DockerSwarm和Kubernetes是两种领先的容器编排工具,它们可以帮助开发人员大规模部署和管理应用。在本文中,我们将探讨如何使用这两种工具来在PHP开发中实现快速部署和可扩展性。DockerSwarmDockerSwarm是一个原生的Docker集群解决方案,它允许开发人员在多个主

如何使用Java开发一个基于Spring Cloud Kubernetes的容器编排应用
如何使用Java开发一个基于Spring Cloud Kubernetes的容器编排应用

如何使用Java开发一个基于SpringCloudKubernetes的容器编排应用随着容器技术的发展和广泛应用,容器编排工具也成为了开发人员不可或缺的一部分。Kubernetes作为目前最流行的容器编排工具之一,已经成为了业界的标准。在此背景下,结合SpringCloud和Kubernetes,我们可以很方便地开发出基于容器编排的应用。本文将详细介绍

如何使用Java开发一个基于Kubernetes的容器编排应用
如何使用Java开发一个基于Kubernetes的容器编排应用

如何使用Java开发一个基于Kubernetes的容器编排应用引言:Kubernetes已经成为现代容器编排平台的事实标准,它提供了强大的工具和机制,以简化容器化应用的部署、管理和扩展。这篇文章将介绍如何使用Java编写一个基于Kubernetes的容器编排应用,并提供具体的代码示例。设置开发环境在开始之前,我们需要准备好以下开发环境:安装JavaDeve

Golang开发:使用Kubernetes管理容器化应用
Golang开发:使用Kubernetes管理容器化应用

Golang开发:使用Kubernetes管理容器化应用,需要具体代码示例引言:随着容器化技术的兴起,容器编排管理工具Kubernetes也越来越受到开发者的关注和使用。Golang作为一种性能强大的编程语言,具有高并发和简单易用的特点,成为了很多开发者选择开发Kubernetes相关应用的首选语言。本文将介绍如何使用Golang开发Kubernetes应用

怎么使用Kubernetes部署Springboot或Nginx
怎么使用Kubernetes部署Springboot或Nginx

1前言这非常简单,一个yaml文件即可。2一键部署springboot2.1准备yaml文件当准备好镜像文件后,要部署到kubernetes就非常容易了,只需要一个yaml格式的文件即可,这个文件能描述你所需要的组件,如deployment、service、ingress等。定义如下:apiversion:apps/v1kind:deploymentmetadata:name:pkslow-springboot-deploymentspec:selector:matchlabels:app:springb

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
讯飞绘文 网页版
讯飞绘文 网页版
Windows

讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

AirServer Windows版
AirServer Windows版
Windows

AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

AlwaysUp Windows版
AlwaysUp Windows版
Windows

AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。