傲视Kubernetes(五):注解和命名空间
本文主要围绕两部分展开:
1. 注解的介绍及使用;
2. 命名空间的介绍及使用。
一、注解
K8S中的对象除了可以用标签来标识/归类外,还可以用加注解(annotations)属性,它属于metadata的子标签,也是键值对的格式。此处的注解和java中的注解完全不一样,非要类比的话,Java中的注解更像是Kubernetes中的标签-标识特定的用途,而Kubernetes中的注解更像是注释,相对于标签来说,可以添加更多更详细的内容,但总共不能超过256KB。
标签有对应的标签选择器,所以可以用于标识/归类,但注解则没有对应的注解选择器。
注解使用:
添加/修改注解(跟操作标签的格式类似):
kubectl annotate pod podname annotationkey=annotationvalue
添加完之后当你查看pod信息时就能看到这个注解。
二、命名空间
命名空间可以将一组与其他对象隔离开,同一个命名空间内部的对象名不能重复,但不同命名空间之间的对象无此约束。Kubernetes的命名空间是给对象划分的作用域,只有通过这个命名空间才能操作作用域内的对象。不同的命名空间之间不提供网络隔离。
操作:
查看集群中已有的命名空间:
kubectl get ns
查看某个命名空间中的对象:
kubectl get pod -n namespace-name
创建命名空间可以通过yaml文件创建,也可以直接用下面指令:
kubectl create namespace namespace-name
注意命名空间的名字不能有点号
如何将对象划分给对应的命名空间呢?可以在创建对象时指定命名空间:
kubectl create -f xxx.yaml -n namespace-name
或者在yaml文件中,在metadata标签下增加namespace标签。