Kubernetes--管理资源标签(标签)
随着同类型资源对象的数量越来越多,分类管理也变得越来越有必要:基于简单且直接的标准将资源对象划分为多个较小的分组,无论是对开发人员还是对系统工程师来说,都能提升管理效率,这也正是 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--管理资源标签(标签)的更多相关文章
- kubernetes创建资源对象yaml文件例子--pod详解
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 metadata: #资源的元数据/属性 name: ...
- [置顶]
kubernetes创建资源yaml文件例子--pod
kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...
- (七)Kubernetes Service资源
Service概述 为什么要使用Service Kubernetes Pod是平凡的,由Deployment等控制器管理的Pod对象都是有生命周期的,它们会被创建,也会意外挂掉.虽然它们可以由控制器自 ...
- Kubernetes中资源清单与Pod的生命周期(二)
一.资源清单 1,定义: 在k8s中一般使用yaml格式的文件来创建符合我们预期的资源,这样的yaml被称为资源清单. 使用资源清单创建Pod: kubectl apply -f nginx.yaml ...
- 基于EasyUI Treegrid的权限管理资源列表
1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...
- [置顶]
kubernetes创建资源yaml文件例子--rc
apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: ReplicationController #指定创建资源的角色/类型 metadata: ...
- 使用 Addressables 来管理资源
使用 Addressables 来管理资源 一.安装 打开Package Manager,在Unity Technologies的目录下找到Addressables,更新或下载. 二.配置 依次打开W ...
- kubernetes学习资源
参考文章: 1.kubernetes学习资源 1. <Kubernetes与云原生应用>系列之Kubernetes的系统架构与设计理念 2.[docker专业介绍的网站dockerinfo ...
- Kubernetes管理GPU应用
目录 简介 GPU驱动 Nvidia-docker Nvidia-device-plugin 在Kubernetes上运行GPU应用 附录 简介 伴随着人工智能技术的发展,机器学习的应用场景越来越广泛 ...
- 这么高颜值的Kubernetes管理工具Lens,难道还不能C位出道吗
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 一直使用官方的Kubernetes Dashboard来管 ...
随机推荐
- chatGPT vscode 体验
体验秘钥 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 多人用可能有点卡,重在体验. 自己(中国)想注册账号如下 步骤一:找到入口 搜索Ope ...
- 原生微信小程序跳转传参 : [非TabBar跳转传参] 和 [TabBar跳转传参]
一般常用的微信小程序跳转分为两种 1.非TabBar跳转 2.TabBar跳转 1.非TabBar跳转 非TabBar页面的跳转通常使用wx.navigateTo来跳转页面,在链接后面加 ? 传参,如 ...
- LG P2633 Count on a tree
\(\text{Solution}\) 树上主席树板子 \(\text{Code}\) #include <cstdio> #include <algorithm> #defi ...
- 记一次hooks陷阱
今天写一个hook,正想发挥hooks这种高级复用方式来缩短我的开发时间,就出现了一个新bug. 我编写的这个hook用于管理数据列表状态.除了导出内部的状态外,还导出一些方法供外部调用.代码简化如下 ...
- kubebuilder简明教程
一.operator概述 Operator 是 Kubernetes 的扩展软件,它利用 定制资源 管理应用及其组件. Operator 遵循 Kubernetes 的理念,特别是在控制器 方面[1] ...
- 苹果手机iframe高度设定不生效而且无法滑动
为iframe加个div.d1 .d1{ -webkit-overflow-scrolling: touch; overflow-y: scroll; height: 500px; 最好加上固定的高度 ...
- 从Encoder-Decoder(Seq2Seq)理解Attention的本质
0. 目录 1. 前言 2. Transformer模型结构 2.1 Transformer的编码器解码器 2.2 输入层 2.3 位置向量 2.4 Attention模型 3. 总结 1. 语言模型 ...
- python服务返回text与json
json.dumps(),loads()和jsonify()的区别 使用方法不同: dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入: import jso ...
- stm32 出入栈
Start.S 一般指定栈顶指针及栈大小 1.硬件中断 有硬件入栈和软件入栈部分 硬件入栈寄存器: R0,R1,R2,R3,R12,PSR 软件入栈寄存器: r4 - r11 2.程序切换入栈 ...
- vue页面添加锚点后 点击不改变URL
html: <a @click="changeHash('#row')"> {{ $t("msg.desc1") }} </a> j ...