首页/云/云与容器速查/kubectl create 命令式生成资源
Kubernetes68 条

kubectl create 命令式生成资源

快速生成资源或在无 YAML 时应急:deployment/service/namespace/secret/configmap/job 都支持;--dry-run=client -o yaml 生成模板后修改再 apply 是推荐用法。

云与容器速查云更新于 2026-10-13

kubectl create 是什么

kubectl create 是命令式创建资源的方式,不用先写 YAML 就能起一个 Deployment、Service、命名空间、Secret 或 ConfigMap。它真正的价值在于生成模板:加 --dry-run=client -o yaml 输出一份可直接编辑的 YAML,补上探针、资源限制与标签后再用 apply 提交。命令式创建适合应急与试错,正式交付仍应走仓库里的 YAML。

基本信息

常用资源deployment、service、namespace、secret、configmap、job
生成模板--dry-run=client -o yaml 输出 YAML 而不真正创建
secret 子命令generic 从键值或文件创建、docker-registry 拉取镜像凭证、tls 证书
configmap 子命令create configmap 名称 --from-file 目录或 --from-literal 键值
与 apply 区别create 遇到已存在资源会报错,apply 是声明式创建或更新

典型使用场景

  • 快速验证:临时起一个 Deployment 确认镜像可拉取、能启动
  • 生成模板:先 dry-run 输出骨架 YAML,再补全探针与资源限制
  • 命名空间初始化:一次性创建命名空间与其下的 Secret 与 ConfigMap
  • 镜像拉取凭证:创建 docker-registry 类型的 Secret 供私有仓库拉取
  • 临时任务:用 create job 快速跑一次数据迁移或批处理

生成模板再部署

生成模板再部署
kubectl create deployment web --image=nginx:1.27 --replicas=3 \
  --dry-run=client -o yaml > web.yaml     # 只输出模板,不真正创建
# 编辑 web.yaml:补探针、资源限制、标签与选择器
kubectl apply -f web.yaml                 # 以声明式方式创建或更新
kubectl create secret generic app-secret --from-literal=KEY=value   # 键值型 Secret
kubectl create configmap app-conf --from-file=./conf/               # 从目录生成 ConfigMap

常用子命令对照

子命令用途注意点
deployment创建无状态工作负载默认不含探针与资源限制
service创建服务与访问入口选择器要与工作负载标签匹配
namespace创建命名空间建议配合资源配额与限额范围
secret创建凭证类对象命令里明文传值会进 shell 历史
configmap创建配置对象大文件建议用挂载而非环境变量
命令式命令是效率工具,不是交付手段:进入代码仓库的永远应该是渲染后的 YAML,否则下次 apply 会把命令行的临时改动整体覆盖掉。
用 create secret 时把明文口令直接写在命令行里,会进入 shell 历史记录与审计日志。更稳妥的方式是从文件或环境变量读取,并及时清理历史。
命令式创建出来的对象默认缺少健康探针、资源上下限与规范标签,直接用于生产会留下隐患。生成模板后务必补齐这三类字段再提交。

易错点

  • create secret 把明文写在命令里,凭证进入 shell 历史与审计日志
  • 命令式创建的标签不规范,Service 选择器对不上导致流量为零
  • 用 create 试图更新已存在的资源,直接报已存在的错误
  • 命令式改动没回写 YAML,下一次 apply 把临时修改全部覆盖

数据来源与参考

  • Kubernetes Docs:kubectl create
  • Kubernetes Docs:Managing Resources

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌