# kubectl edit 命令详解

使用默认编辑器 编辑服务器上定义的资源。

使用命令行工具获取的任何资源都可以使用 edit 命令编辑。edit 命令会打开使用 KUBE_EDITOR,GIT_EDITOR 或者 EDITOR 环境变量定义的编辑器,可以同时编辑多个资源,但所编辑过的资源只会一次性提交。edit 除命令参数外还接受文件名形式。

文件默认输出格式为 YAML。要以 JSON 格式编辑,请指定“-o json”选项。

如果在更新资源时报错,将会在磁盘上创建一个临时文件来记录。在更新资源时最常见的错误是几个用户同时使用编辑器更改服务器上资源,发生这种情况,你需要将你的更改应用到最新版本的资源上,或者更新保存的临时副本。

# 语法

$ edit (RESOURCE/NAME | -f FILENAME)

# 示例

编辑名为'docker-registry'的 service:

kubectl edit svc/docker-registry

使用替代的编辑器

KUBE_EDITOR="nano" kubectl edit svc/docker-registry

编辑名为“myjob”的 service,输出 JSON 格式 V1 API 版本

kubectl edit job.v1.batch/myjob -o json

以 YAML 格式输出编辑 deployment“mydeployment”,并将修改的配置保存在 annotation 中:

kubectl edit deployment/mydeployment -o yaml --save-config

# Flags

Name Shorthand Default Usage
filename f [] Filename, directory, or URL to files to use to edit the resource
include-extended-apis true If true, include definitions of new APIs via calls to the API server. [default true]
output o yaml Output format. One of: yaml|json.
record false Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists.
recursive R false Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory.
save-config false If true, the configuration of current object will be saved in its annotation. Otherwise, the annotation will be unchanged. This flag is useful when you want to perform kubectl apply on this object in the future.
schema-cache-dir ~/.kube/schema If non-empty, load/store cached API schemas in this directory, default is '$HOME/.kube/schema'
validate true If true, use a schema to validate the input before sending it
windows-line-endings false Use Windows line-ending
Last Updated: 4/15/2023, 8:33:17 PM