label标签。。。

标签


Namespace(名字空间)
Namespace,不仅仅是一个属性,本身也是一个object
Namespace :用于将物理集群划分为多个虚拟集群
Namespace间完全隔离,因此也常被用来隔离不同的用户(及权限)
内置三个Namespaces: default、kube-system和kube-public,Node和PersistentVolume不属于任何namespace
Label(标签)
Label用于建立集群对象之间的灵活的、松耦合的多维关联关系
一个label是一个键-值对,其中的key、value均由用户自己定义
label可以附着在任何对象上,每个对象也可以有任意个标签。标签可在对象定义时附加上,也可以通过命令动态管理标签
Label可以将有组织目的的结构映射到集群对象上,从而形成一个与现实世界管理结构同步对应松耦合的、多维的对象管理结构

Annotations(注解)
Annotations :可以将任意非标识性元数据附加到对象上
Annotations也是以键值对形式呈现
◆工具和库可以检索到并使用这些Annotations元数据
将数据作为Annotation附着在对象上,有利于创建一些用于部署、管理和做内部检查的共享工具或客户端
这张关系图回头了解一下
同一类型的对象,name是惟一的
Annotations(注解)
Annotations:可以将任意非标识性元数据附加到对象上
Annotations 也是以键值对形式呈现
工具和库可以检索到并使用这些 Annotations 元数据
将数据作为 Annotation 附着在对象上,有利于创建一些用于部署、管理和做内部检查的共享工具或客户端
Label(标签)
通过 label selector 查询和筛选建立对象间的关系
Label(标签)
Label 用于建立集群对象之间的灵活的、松耦合的多维关联关系
一个 Label 是一个键-值对,其中的 key、value 均由用户自己定义
Label 可以附着在任何对象上,每个对象也可以有任意个标签。标签可在对象定义时附加上,也可以通过命令动态管理标签
Label 可以将有组织目的的结构映射到集群对象上,从而形成一个与现实世界管理结构同步对应松耦合的、多维的对象管理结构
Namespace(名字空间)
Namespace,不仅仅是一个属性,本身也是一个 object
Namespace:用于将物理集群划分为多个虚拟集群
Namespace 间完全隔离,因此也常被用来隔离不同的用户(及权限)
内置三个 Namespaces:default,kube-system 和 kube-public,Node 和 PersistentVolume 不属于任何 namespace
Name 和 UID:
Kubernetes 集群中所有对象都通过 name 和 UID 明确标识
API 中的对象访问路径:/api/{version}/namespaces/{namespace}/{object-kind}/name,比如:/api/v1/namespaces/default/pods/hello-kubernetes
在 Kubernetes 集群的整个生命周期内创建的每个对象实例都具有不同的 UID.
label标签
Kubenetes对象常用的Metedata属性-Annotations注解
Kubenetes对象常用的Metedata属性-Label标签2
Kubenetes对象常用的Metedata属性-Label标签1
Kubenetes对象常用的Metedata属性-Namespace
Kubernetes对象常用的Metedata属性-Name&UID
6-2 Metadata
k8s对象中Metadata是最常见的静态属性
Name和UID:所有对象都由Name和UID明确标识。
同一类的对象中,Name唯一;
不同类的对象中,Name可以一样;
不同名字空间在,Name可以一样;
某个Pod叫“Hello k8s”,某个deployment也可以叫“Hello k8s”
每个对象部署后,有一个唯一标识UID,该UID在k8s集群整个生命周期范围内都是唯一的,为了与历史部署过的同名对象做区分。
API可以通过对象名字访问,通用路径:/api/{version}/namespaces/{namespace}/{object-kind}/name
如:/api/v1/namespaces/default/pods/hello-k8s
Namespace:不仅是一个属性,本身还是一个object
提供独立的命名空间,将物理集群划分为多个虚拟集群,对象的名称(spec.name)在同一个名字空间内是唯一的
namspace间互相独立,所以常用来隔离不同的用户和权限
k8s有三个内置的namespace,
default:默认的
kube-system:平台组件部署的,api server,dns插件,网关插件等
kube-public:自动创建,供所有用户访问,包括未经过身份验证的用户访问,它主要还是为集群自用创建的,以便资源在集群中公开可见可读。
Node,PersistentVolume不属于任何namespace。
Label:k8s原对象都有的元数据属性,用于建立集群对象之间松耦合的关联关系。
一个Label就是第一个键值对。只要符合标签语法规定即可
label可以附着在任何对象上,任何对象都可以有任意标签;label既可以定义对象时附加,也可以管理对象时操作标签。标签不是唯一的,很多对象可能有相同的标签(这不废话吗???)
label可以将结构映射到集群对象上,形成一个与现实管理结构同步的,松耦合的,多为的对象管理结构。因此我们不需要在客户端存放这些关系。通过selector的查询和筛选建立这种松耦合的管理关系。
示例:生产环境服务service1,上线前测试的内部服务service2;
service1,service2分别通过selector关联了不同的pod(2)。pod2,3,4;pod1(pod提供后端服务支撑)
pod2,3,4;pod1分别通过selector关联了不同的node(s)。node2,3;node1(k8s普通节点提供服务调度运行)
这样,通过多层次多维度的标签定义,一个对应现实管理结构的对象关系就建立起来了。不同角色可以在同集群完成不同工作,互不影响。
---
Annotations:将任意非标识性元数据附加到对象上,这是与标签的区别,标签数据是用于标识对象的数据,用于选择对象,annotations不能用于标识,选择对象。
annotations也是键值对形式出现,可以是结构化或者非结构化,甚至可以包含标签中不允许出现的字符。常见可以记录在数据的注解中的信息包括:创建,版本,debug后端信息等等。例如时间戳,版本号,对象哈希值.等等;用户,工具,系统信息等
工具和库可以检索并使用这些Annotations元数据,以实现逻辑
将数据作为注解注入对象,有利于创建用于部署,管理和内部检查的共享工具或客户端。
kube-system:k8s平台组件部署的空间(如api-server)
kube-public:可供所有用户(包括未经身份验证的用户)访问
Service通过label selector关联到支撑业务运行的后端Pod(Endpoint):
Service.yaml中的selector信息==Deployment.yaml中的labels信息
label标签
kubernetes
kubernetes
kubernetes
Label应用示意图
Name和UID