kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

kubectl コマンドを使って Label や Annotation を削除する

kubectl コマンドを使って Label(ラベル)Annotation(アノテーション)を削除する場合,削除用のオペレーションはなく,キー名の末尾に - を付けて登録をする必要がある.具体的には bar-description- というキー名を指定すると削除できる.以下のドキュメント「kubectl Command Reference」にも載っている.今回は kind で構築した Kubernetes v1.19.1 のクラスターを使って検証した内容をまとめておく!

$ kubectl label pods foo bar-

$ kubectl annotate pods foo description-

Kubectl Reference Docs

Label を削除する : Node と Pod

まず,Node kind-workerLabel my-label=hello を登録する.kubectl get コマンドで --label-columns もしくは -L オプションを使うと指定したラベルを表示できる.ポイントは Label を削除する部分で kubectl label nodes kind-worker my-label- というコマンドになる.my-label- を指定している.

# Node
$ kubectl label nodes kind-worker my-label=hello
node/kind-worker labeled

$ kubectl get nodes kind-worker -L my-label
NAME          STATUS   ROLES    AGE   VERSION   MY-LABEL
kind-worker   Ready    <none>   5m    v1.19.1   hello

$ kubectl label nodes kind-worker my-label-
node/kind-worker labeled

$ kubectl get nodes kind-worker -L my-label
NAME          STATUS   ROLES    AGE    VERSION   MY-LABEL
kind-worker   Ready    <none>   6m    v1.19.1

Pod でも同じように確認する.Label を削除するときは kubectl label pods nginx my-label- というコマンドになる.

# Pod
$ kubectl label pods nginx my-label=hello
pod/nginx labeled

$ kubectl get pods nginx -L my-label
NAME    READY   STATUS    RESTARTS   AGE   MY-LABEL
nginx   1/1     Running   0          20s   hello

$ kubectl label pods nginx my-label-
pod/nginx labeled

$ kubectl get pods nginx -L my-label
NAME    READY   STATUS    RESTARTS   AGE   MY-LABEL
nginx   1/1     Running   0          40s

Annotation を削除する : Node と Pod

次に Node kind-workerAnnotation my-annotation=hello を登録する.kubectl get コマンドのオプションで Annotation を表示することはできないため,今回は custom-columns フォーマットを使う.ポイントは Annotation を削除する部分で kubectl annotate nodes kind-worker my-annotation- というコマンドになる.my-annotation- を指定している.

# Node
$ kubectl annotate nodes kind-worker my-annotation=hello
node/kind-worker annotated

$ kubectl get nodes kind-worker -o custom-columns=Name:metadata.name,ANNOTATIONS:metadata.annotations.my-annotation
Name          ANNOTATIONS
kind-worker   hello

$ kubectl annotate nodes kind-worker my-annotation-
node/kind-worker annotated

$ kubectl get nodes kind-worker -o custom-columns=Name:metadata.name,ANNOTATIONS:metadata.annotations.my-annotation
Name          ANNOTATIONS
kind-worker   <none>

Pod でも同じように確認する.Annotation を削除するときは kubectl annotate pods nginx my-annotation- というコマンドになる.

# Pod
$ kubectl annotate pods nginx my-annotation=hello
pod/nginx annotated

$ kubectl get pods nginx -o custom-columns=Name:metadata.name,ANNOTATIONS:metadata.annotations.my-annotation
Name    ANNOTATIONS
nginx   hello

$ kubectl annotate pods nginx my-annotation-
pod/nginx annotated

$ kubectl get pods nginx -o custom-columns=Name:metadata.name,ANNOTATIONS:metadata.annotations.my-annotation
Name    ANNOTATIONS
nginx   <none>