随着同类型资源对象的数量越来越多,分类管理也变得越来越有必要:基于简单且直接的标准将资源对象划分为多个较小的分组,无论是对开发人员还是对系统工程师来说,都能提升管理效率,这也正是 Kubernetes 标签(Label)的核心功能之一。对于附带标签的资源对象,可使用标签选择器(Label Selector)挑选出符合过滤条件的资源以完成所需要的操作,如关联、查看和删除等。

标签概述

标签是Kubernetes极具特色的功能之一,它能够附加于区ubemetes 的任何资源对象之上。简单来说,标签就是“键值”类型的数据,它们可于资源创建时直接指定,也可随时按需添加于活动对象中,而后即可由标签选择器进行匹配度检杳从而完成资源挑选。一个对象可拥有不止一个标签,而同一个标签也可被添加至多个资源之上。

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

  • 版本标签:"release":"stable","release" : "canary" , "release" : "beta"。
  • 环境标签:"environment" : "dev","environment" : "qa" , "environment" : "production"。
  • 应用标签:"app" :"ui" ,"app" : "as" , "app" : "pc" , "app" : "sc" 。
  • 架构层级标签:"tier" :"frontend" ,"tier” : "backend” ,"tier" : "cache"。
  • 分区标签:"partition” :"customerA" , "partition" : "customerB" 。
  • 品控级别标签:"track" :"daily" ,"track" : "weekly" 。

标签中的键名称通常由键前缀和键名组成,其中键前级可选,其格式形如“KEY-PREFIX/KEY NAME”。键名至多能使用63个字符,可使用字母、数字、连接号(-)、下划线(—)、点号(.)等字符,并且只能以字母或数字开头。键前级必须为DNS子域名格式,且不能超过253个字符。省略键前级时,键将被视为用户的私有数据,不过由Kubernetes系统组件或第三方组件自动为用户资源添加的键必须使用键前级,而“kubernetes.io/” 前缀则预留给Kubernetes的核心组件使用。

标签中的键值必须不能多于63个字符,它要么为空,要么是以字母或数字开头及结尾,且中间仅使用了字母、数宇、连接号(-)、下划线(—)或点号(.)等字符的数据。

实践中,建议键名及键值能做到 “见名知义” ,且尽可能保持简单。

管理资源标签

创建资源时。可以直接在其metadata中嵌套使用“labels”字段以定义要附加的标签项。比如,下面的Pod资源清单文件示例pod-with-labels.yaml中使用了两个标签env=qa和tier=frontend:

apiVersion: v1
kind: Pod
metadata:
name: pod-with-labels
labels:
env: qa
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1

  基于次资源清单创建出定义的Pod对象之后,即可在“kubectl get pods”命令中使用“--show-labels”选项,以额外显示对象的标签信息:

kubectl apply -f pod-with-labels.yaml
pod “pod-with-labels” created
kubectl get pods --show-labels
······

  

#显示内容就省略掉了,大家可以自己查看。

标签较多时,在“kubectl get pods”命令上使用“-L key1,key2,···”选项可以指定显示有着特定键的标签信息。比如仅显示在各pods之上的以env和tier为键名的标签:

kubectl get pods -L env,tier

  “kubectl label”命令可以直接管理活动对象的标签,以按需进行添加或修改等操作。比如为pod-example添加env=production标签:

kubectl label pods/pod-example env=production
pod “pod-example” labeled

  不过,对于已经附带了指定键名的标签,使用“kubectl label”为其设定新的键值时需要为命令同时使用“--overwrite”命令以强制覆盖原有的键值。比如将pod-with-labels的env的值修改为“testing”:

kubectl label pods/pod-with-labels env=testing --overwtite
pod “pod-with-labels” labeled

  用户若期望对某标签之下的资源集合执行某类操作,比如查看或删除等,则需要先使用“标签选择器”挑选出满足的条件的资源对象。

Kubernetes--管理资源标签(标签)的更多相关文章

  1. kubernetes创建资源对象yaml文件例子--pod详解

    apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 metadata: #资源的元数据/属性 name: ...

  2. [置顶] kubernetes创建资源yaml文件例子--pod

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

  3. (七)Kubernetes Service资源

    Service概述 为什么要使用Service Kubernetes Pod是平凡的,由Deployment等控制器管理的Pod对象都是有生命周期的,它们会被创建,也会意外挂掉.虽然它们可以由控制器自 ...

  4. Kubernetes中资源清单与Pod的生命周期(二)

    一.资源清单 1,定义: 在k8s中一般使用yaml格式的文件来创建符合我们预期的资源,这样的yaml被称为资源清单. 使用资源清单创建Pod: kubectl apply -f nginx.yaml ...

  5. 基于EasyUI Treegrid的权限管理资源列表

    1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...

  6. [置顶] kubernetes创建资源yaml文件例子--rc

    apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: ReplicationController #指定创建资源的角色/类型 metadata: ...

  7. 使用 Addressables 来管理资源

    使用 Addressables 来管理资源 一.安装 打开Package Manager,在Unity Technologies的目录下找到Addressables,更新或下载. 二.配置 依次打开W ...

  8. kubernetes学习资源

    参考文章: 1.kubernetes学习资源 1. <Kubernetes与云原生应用>系列之Kubernetes的系统架构与设计理念 2.[docker专业介绍的网站dockerinfo ...

  9. Kubernetes管理GPU应用

    目录 简介 GPU驱动 Nvidia-docker Nvidia-device-plugin 在Kubernetes上运行GPU应用 附录 简介 伴随着人工智能技术的发展,机器学习的应用场景越来越广泛 ...

  10. 这么高颜值的Kubernetes管理工具Lens,难道还不能C位出道吗

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 一直使用官方的Kubernetes Dashboard来管 ...

随机推荐

  1. 企业微信集成openai实现ChatGPT机器人

    背景: 现在网上查资料,痛点太多了,什么广告,什么重复的,对于程序员的我来说,简直是无语 最近接触到ChatGpt,问了些技术问题,答的比某度好,甚至可以写代码,真的太棒了 因此想写个专门的机器人,给 ...

  2. ubuntu 备份系统

    1.安装Systemback: sudo add-apt-repository ppa:nemh/systemback sudo apt-get update sudo apt-get install ...

  3. 视觉十四讲:第六讲_ceres非线性优化

    使用Ceres求解非线性优化问题,一共分为三个部分: 1. 第一部分:构建cost fuction,即代价函数,也就是寻优的目标式.这个部分需要使用仿函数(functor)这一技巧来实现,做法是定义一 ...

  4. Linux 下安装Nginx两种方法- yum安装 and Centos7下yum安装配置nginx与php

    转载csdn: Linux 下安装Nginx两种方法- yum安装_在电脑前深思的博客-CSDN博客 Linux安装Nginx(两种方式)_HHRunning的博客-CSDN博客_linux 是否安装 ...

  5. 这些 JavaScript 笔试题你能答对几道?

    收藏 javascript-questions 这个仓库很久了,趁着周末来锻炼下自己的 JS 基础水平 因为逐渐也在承担一些面试工作,顺便摘录一些个人觉得比较适合面试的题目和方向 事件流(捕获.冒泡) ...

  6. .net 定时任务(调度 .net quartz) demo

    详细解说:https://blog.csdn.net/noaman_wgs/article/details/80984873 demo如下: 新建控制台应用程式: 添加Nuget包 static vo ...

  7. vue路由中pdfjs插件使用及找不到 viewer.html解决

    官方下载: https://mozilla.github.io/pdf.js/getting_started/#download 同目录下pdfjs-2.12.313-dist.zip为官方下载包 此 ...

  8. JS 获取参数、封装

    var common = { getQueryString : function(name){ var reg = new RegExp('(^|&)' + name + '=([^& ...

  9. Vue学习笔记之Vue-Router

    1. 概述 Vue Router 是 Vue.js 的官方路由.它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举.功能包括: 嵌套路由映射 动态路由选择 模块化.基于组件 ...

  10. [UTCTF2020]basic_crypto

    [UTCTF2020]basic_crypto 题目: 01010101 01101000 00101101 01101111 01101000 00101100 00100000 01101100 ...