1、kubectl annotate简介
kubectl annotate
更新一个或多个资源上的注释。所有Kubernetes对象都支持用对象作为注释存储附加数据的能力。注释是键/值对,可以比标签大,包括任意字符串值,如结构化JSON。工具和系统扩展可以使用注释来存储它们自己的数据。
除非设置了--overwrite,否则试图设置已经存在的注释将失败。如果指定了--resource-version,且与服务器上的当前资源版本不匹配,则命令将失败。使用"kubectl api-resources"获取支持资源的完整列表。
2、kubectl annotate语法
kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
3、kubectl annotate命令
1)更新pod 'cjavapy'的注释'description'和值'my frontend'
kubectl annotate pods cjavapy description='my frontend'
注意:如果相同的注释设置多次,只会应用最后一个值。
2)在"pod.json"中根据类型和名称更新一个pod
kubectl annotate -f pod.json description='my frontend'
3)用注释'description'和值'my frontend running nginx'更新pod 'cjavapy',覆盖任何现有值
kubectl annotate --overwrite pods cjavapy description='my frontend running nginx'
4)更新命名空间中的所有pod
kubectl annotate pods --all description='my frontend running nginx'
5)只有当资源从版本1开始没有变化时,才更新pod 'cjavapy'
kubectl annotate pods cjavapy description='my frontend running nginx' --resource-version=1
6)通过删除名为“description”的注释(如果它存在的话)来更新pod 'cjavapy'
kubectl annotate pods foo description-
4、选项说明
名称 | 简称 | 默认 | 用法 |
all | false | 选择指定资源类型名称空间中的所有资源, 包括未初始化的资源。 | |
all-namespaces | A | false | 如果为true, 在所有名称空间中检查指定的操作。 |
allow-missing-template-keys | true | 如果为true,当模板中缺少字段或映射键时, 忽略模板中的任何错误。 只适用于golang和jsonpath输出格式。 | |
dry-run | none | 必须为“none”、“server”或“client”。 如果客户端策略,则只打印将要发送的对象, 而不发送它。如果是服务器策略, 则提交服务器端请求而不持久化资源。 | |
field-manager | kubectl-annotate | 用于跟踪字段所有权的管理人员的名称。 | |
field-selector | 选择器(标签查询)进行筛选, 支持' = ',' == '和' != '( 例如, --field-selecto key1=value1,key2=value2)。 服务器只支持每种类型的有限数量的字段查询。 | ||
filename | f | [] | 标识要更新注释的资源的文件的文件名、目录或URL。 |
kustomize | k | 处理定制化目录。此标志不能与-f或-R一起使用。 | |
list | false | 如果为true,则显示给定资源的注释。 | |
local | false | 如果为true,注释将不会联系api-server, 而是在本地运行。 | |
output | o | 输出格式, 以下之一: json|yaml|name| go-template|go-template-file|template| templatefile|jsonpath|jsonpath-as-json| jsonpath-file. | |
overwrite | false | 如果为true,则允许覆盖注释, 否则拒绝覆盖现有注释的注释更新。 | |
record | false | 在资源注释中记录当前kubectl命令。 如果设置为false,则不记录该命令。 如果设置为true,则记录命令。如果未设置, 则默认仅在已有注释值时更新现有注释值。 | |
recursive | R | false | 递归处理-f, --filename中使用的目录。 当想要管理组织在同一目录中的相关清单时使用。 |
resource-version | 如果非空,则只有当这是对象的当前资源版本时, 注释更新才会成功。仅在指定单个资源时有效。 | ||
selector | l | 选择器(标签查询)进行筛选, 不包括未初始化的, 支持' = ',' == '和' != '。 (例如,-l key1 = value1, key2 = value2)。 | |
show-managed-fields | false | 如果为true, 则在以JSON或YAML格式打印对象时 保留managedFields。 | |
template | 当-o=go-template, -o=go-template-file时 要使用的模板文件的模板字符串或路径。 模板格式为golang templates [ http://golang.org/pkg/text/template/#pkg-overview ]. |