kubectl apply

通过声明式配置文件创建或更新资源

语法

kubectl apply -f <filename|url|directory> [flags]

参数

参数说明示例级别
-f --filename 指定配置文件或目录 kubectl apply -f deployment.yaml 常用
-k --kustomize 应用 Kustomize 目录 kubectl apply -k overlays/production/ 进阶
--dry-run=client 客户端模拟执行,不实际创建 kubectl apply -f pod.yaml --dry-run=client 常用
--dry-run=server 服务端验证,不实际创建 kubectl apply -f pod.yaml --dry-run=server 进阶
-R --recursive 递归处理目录 kubectl apply -f configs/ -R 常用
--prune 删除配置文件中不存在的资源 kubectl apply -f dir/ --prune -l app=web 危险

示例

应用单个文件

kubectl apply -f deployment.yaml
创建或更新 Deployment

应用整个目录

kubectl apply -f ./k8s/
目录下所有 YAML 文件都会被应用

从 URL 应用

kubectl apply -f https://raw.githubusercontent.com/org/repo/main/deploy.yaml
直接从远程仓库应用配置

模拟执行检查

kubectl apply -f deployment.yaml --dry-run=server -o yaml
验证配置是否正确,不实际创建

常见错误

error validating data YAML 格式或字段有误,用 --dry-run=server 验证
The Job is invalid: field is immutable 某些字段创建后不可修改,需要先删除再创建

技巧

相关命令