06-kubectl 命令之设置命令

kubectl label

更新(增加、修改或删除)资源上的 label(标签)。

  • label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。
  • 如果–overwrite 为 true,则可以覆盖已有的 label,否则尝试覆盖 label 将会报错。
  • 如果指定了–resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

官方文档

语法

1
kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 给名为foo的Pod添加label unhealthy=true
kubectl label pods foo unhealthy=true


# 给名为foo的Pod修改label 为 ‘status’ / value ‘unhealthy’,且覆盖现有的value。
kubectl label --overwrite pods foo status=unhealthy


# 给 namespace 中的所有 pod 添加 label
kubectl label pods --all status=unhealthy


# 仅当resource-version=1时才更新 名为foo的Pod上的label。
kubectl label pods foo status=unhealthy --resource-version=1


# 删除名为“bar”的label 。(使用“ - ”减号相连)

kubectl label pods foo bar-

kubectl annotate

更新一个或多个资源的Annotations信息。

  • Annotations由key/value组成。
  • Annotations的目的是存储辅助数据,特别是通过工具和系统扩展操作的数据,更多介绍在这里
  • 如果–overwrite为true,现有的annotations可以被覆盖,否则试图覆盖annotations将会报错。
  • 如果设置了–resource-version,则更新将使用此resource version,否则将使用原有的resource version。

有效资源类型包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
all 
certificatesigningrequests (aka 'csr')
clusterrolebindings
clusterroles
clusters (valid only for federation apiservers) componentstatuses (aka 'cs')
configmaps (aka 'cm')
controllerrevisions
cronjobs
daemonsets (aka 'ds')
deployments (aka 'deploy')
endpoints (aka 'ep')
events (aka 'ev')
horizontalpodautoscalers (aka 'hpa')
ingresses (aka 'ing')
jobs
limitranges (aka 'limits')
namespaces (aka 'ns')
networkpolicies (aka 'netpol')
nodes (aka 'no')
persistentvolumeclaims (aka 'pvc')
persistentvolumes (aka 'pv')
poddisruptionbudgets (aka 'pdb')
podpreset pods (aka 'po')
podsecuritypolicies (aka 'psp')
podtemplates replicasets (aka 'rs')
replicationcontrollers (aka 'rc')
resourcequotas (aka 'quota')
rolebindings
roles
secrets
serviceaccounts (aka 'sa')
services (aka 'svc')
statefulsets
storageclasses
thirdpartyresources

官方文档

语法

1
kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 更新Pod“foo”,设置annotation “description”的value “my frontend”,如果同一个annotation多次设置,则只使用最后设置的value值。
kubectl annotate pods foo description='my frontend'


# 根据“pod.json”中的type和name更新pod的annotation
kubectl annotate -f pod.json description='my frontend'


# 更新Pod"foo",设置annotation“description”的value“my frontend running nginx”,覆盖现有的值。
kubectl annotate --overwrite pods foo description='my frontend running nginx'


# 更新 namespace中的所有pod
kubectl annotate pods --all description='my frontend running nginx'


# 只有当resource-version为1时,才更新pod ’ foo '。
kubectl annotate pods foo description='my frontend running nginx' --resource-version=1


# 通过删除名为“description”的annotations来更新pod ’ foo '。#不需要- overwrite flag。
kubectl annotate pods foo description-

kubectl completion

用于设置 kubectl 命令自动补全

官方文档

安装

Note for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2.

语法

kubectl completion SHELL


06-kubectl 命令之设置命令
https://flepeng.github.io/042-云原生-02-kubernetes-13-命令-kubectl-06-kubectl-命令之设置命令/
作者
Lepeng
发布于
2023年3月1日
许可协议