# 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 |