在Kubernetes中,字段选择器仅限于每种资源类型的特定字段。但是几乎每个资源都有用于名称和元数据名称空间的字段选择器,如果是这样,为什么需要有一个单独的标签选择器。
labels:
{
app: foo
}而不是查询kubectl get pods -l app=foo,为什么它不能成为通用字段选择器的一部分,比如:
kubectl get pods --field-selector metadata.labels.app=foo
发布于 2020-03-19 19:02:06
简而言之:由于etcd没有针对通用查询进行优化,因此Kubernetes必须挑选索引和不索引的内容。这就是为什么标签和注释都存在,尽管看起来非常相似,但标签是为搜索而索引的,而注释不是。
发布于 2020-03-19 18:20:36
标签使用户能够以松散耦合的方式将他们自己的组织结构映射到系统对象上,而不需要客户端存储这些mappings.It并不直接暗示核心系统的语义。
对于字段选择器,客户端需要使用字段选择器存储mappings.So,因为所有内容都是不可伸缩的。
https://stackoverflow.com/questions/60753810
复制相似问题