技术笔记分享

Label/资源标签

在第一章博客中有简单的了解了标签的概念,以下介绍标签的使用格式及注意事项

  • 一个对象可以拥有多个标签,而一个标签也可以被添加在多个资源之伤。

  • 实践中,可以为资源附加多个不同纬度的标签以实现灵活的资源分组管理功能,例如版本标签、环境标签、分层架构标签等,拥有交叉标示同一个资源所属的不同版本、环境及架构层级等。

  • 标签中的键名称由键前缀和键名称组成,其中键前缀可选,其格式如:"KEY_PREFEIX/KEY_NAME"。

    1. 键名称最多使用63个字符,可以使用字母、数字、连接号(-)、下划线(_)、点号(.)等字符,且只能以字母或数字开头。
    2. 键前缀必须为DNS子域名格式,且不能超过253个字符。省略键前缀时,键将被视为用户的私有数据,不过由Kubernetes系统组件或第三方组件自动为用户资源添加的键必须使用键前缀,而“kubernetes.io/”前缀是预留给kubernetes的核心组件使用。
    3. 标签中的键值必须不能多于63个字符,要么为空,要么是以字符或数字开头及结尾,且中间仅使用了字母、数字、连接号(-)、下划线(_)、点号(.)等字符的数据。

undefined

标签选择器

标签选择器(Selector),全称为 ”Label Selector“,标签选择器通过 Label来过滤符合条件的 Pod,例如附有标签 ”application:nginx“的所有 Pod 挑选出来归纳为一类,并为归纳出的这组标签的 Pod 创建为 Service的端点。

标签选择器用于表达标签的查询条件或选择标准,kubernetes API目前支持两种选择器:

  • 基于等值关系(equality-based)
    操作符有=、==、和!=三种,其中前两个意义相同,都表示“等值”关系,最后一个表示”不等“关系
  • 基于集合关系(set-based)
    KEY in (VALUE1,VALUE2…)
    KEY not in (VALUE1,VALUE2…)
    KEY:所有存在此键名标签的资源
    !KEY:所有不存在此键名标签的资源

使用标签选择器时还将遵循以下逻辑:

  • 同时指定的多个选择器之间的逻辑关系为“与”操作;
  • 使用空值的标签选择器意味着每个资源对象都将被选中;
  • 空的标签选择器将无法选出任何资源

定义标签选择器的方式:

  • matchLabels:通过直接给定键值对指定标签选择器;
  • matchExpressions:基于表达式指定的标签选择器列表,每个选择器如:"{key:KEY_NAME,operator:OPERATOR,values:[VALUE1,VALUE2,…]}",选择器列表间为“逻辑非”关系;
    使用ln或NotIn操作符时,其values非必须为非空的字符串列表,而使用Exists或DostNotExist时,其values必须为空。

标签管理

发表评论

邮箱地址不会被公开。 必填项已用*标注