草庐IT

【云原生 • Kubernetes】kubernetes 核心技术 - Label 和 Selector

敬 之 2023-04-12 原文

目录


当 Kubernetes 对系统中任何 API 对象(如 Pod 和节点)进行 “分组” 时,会为其添加 Label(键值对格式 key=value)用以精准的选择对应的 API 对象。而 Selector 则是针对匹配对象的查询方法。总结起来二者的分工就是:

  • Label 用于给某个资源定义标识
  • Label Selector 用于查询和筛选拥有某些标签的资源对象

1. Label 概述

Label(标签) 是 Kubernetes 的一个核心概念。一个 Label 就是一个 key:value 的键值对被关联到对象上,其中 key 与 value 由用户自己指定。

"labels": {
  "key1" : "value1",
  "key2" : "value2"
}

标签的使用使得我们能标识出对象的一些特殊特点,比如说标识了某个 Pod,那么用户就可以一眼看出这个 Pod 是干什么的。

标签可以用来划分特定组的对象,可以在创建一个对象的时候直接给与,也可以在后期动态添加或删除,每一个对象可以拥有多个标签,但是 key 值必须是唯一的。Label 也可以附加到各种资源对象上,如 Node、Pod、Service、RC,一个资源对象可以定义任意数量的 Label,同一个 Label 也可以被添加到任意数量的资源对象上。

2. Label 语法规则

语法格式:key: value(键值对)

Key:

  • 不超过 63 个字符
  • 支持使用前缀,前缀必须是 DNS 子域,不超过253个字符。
  • 系统化组件创建的 label 必须指定前缀。kubernetes.io 和 k8s.io 由 kubernetes 保留
  • 格式:[A-Za-z0-9][A-Za-z0-9_-.]

value:

  • 不超过 63 个字符
  • 格式:[A-Za-z0-9][A-Za-z0-9_-.]

3. Label 的定义

Label 最常见的用法是使用 metadata.labels 字段来为对象定义 Label,使用 spec.selector 字段来引用对象。如下:

#添加Label
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
	app: new_nginx #定义Label:new_nginx
#引用label
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
	app: new_nginx #引用刚刚定义的Label:new_nginx

Label 附加到 Kubernetes 集群中的各种资源对象上,目的就是对这些资源对象进行分组管理,而分组管理的核心正是 Label Selector。需要知道 Label 与 Label Selector 都不能单独定义,必须附加在一些资源对象的定义文件上,一般是附加在 RC 和 Service 的资源定义文件中的。

4. Label 常用命令

  • 查看标签
kubectl get pod nginx -n dev --show-labels
  • 为 Pod 资源打标签
#为名为nginx的pod添加label aaa=bbb
kubectl label pod nginx aaa=bbb -n dev
  • 为 Pod 资源更新标签
#将名为nginx的pod的label修改为ccc=ddd,且覆盖现有的value
kubectl label pod nginx ccc=ddd -n dev --overwrite
  • 筛选标签
kubectl get pod -n dev -l eee=fff --show-labels
  • 删除标签
#删除nginx中名为aaa的label
kubectl label pod nginx aaa- -n dev

本章学习目标:

  • 掌握 Kubernetes 中 Label 和 Selector 的相关概念与使用方法。

有关【云原生 • Kubernetes】kubernetes 核心技术 - Label 和 Selector的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  3. ruby-on-rails - 在 Label 标签中嵌套 Ruby on Rails HAML 复选框 - 2

    我有以下不起作用的代码:=form_for(resource,:as=>resource_name,:url=>session_path(resource_name),:html=>{:class=>"well"})do|f|=f.label:email=f.email_field:email=f.label:password=f.password_field:password-ifdevise_mapping.rememberable?%p=f.label:remember_me,:class=>"checkbox"=f.check_box:remember_me,:class=>"

  4. ruby-on-rails - 用于门户的 Ruby 技术 - 2

    我刚刚看到whitehouse.gov正在使用drupal作为CMS和门户技术。drupal的优点之一似乎是很容易添加插件,而且编程最少,即重新发明轮子最少。这实际上正是Ruby-on-Rails的DRY理念。所以:drupal的缺点是什么?Rails或其他基于Ruby的技术有哪些不符合whitehouse.org(或其他CMS门户)门户技术的资格? 最佳答案 Whatarethedrawbacksofdrupal?对于Ruby和Rails,这确实是一个相当主观的问题。Drupal是一个可靠的内容管理选项,非常适合面向社区的站点。它

  5. ruby-on-rails - 如何将 aria-label 属性添加到 View 中的链接? - 2

    我正在尝试将aria-label属性添加到链接以使其更易于访问。当我这样做时,它按预期工作:"aria-label="">VersionPostman但这不是:我收到“意外的tLABEL”语法错误。任何人都知道这是什么问题?谢谢。 最佳答案 问题出在标签上的破折号上。试试这个:get_aria_label_current_page('home')%>更新现在在ruby​​2.2中你可以:'aria-label':get_aria_label_current_page('home') 关于

  6. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  7. 【云原生】SpringCloud-Spring Boot Starter使用测试 - 2

    目录SpringBootStarter是什么?以前传统的做法使用SpringBootStarter之后starter的理念:starter的实现: 创建SpringBootStarter步骤在idea新建一个starter项目、直接执行下一步即可生成项目。 在xml中加入如下配置文件:创建proterties类来保存配置信息创建业务类:创建AutoConfiguration测试如下:SpringBootStarter是什么? SpringBootStarter是在SpringBoot组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种SpringBootStarter包可以快速搭建出一

  8. ruby - 如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法? - 2

    我是Ruby分析的新手,看起来像ruby-prof是一个受欢迎的选择。我刚刚安装了gem并调用了我的程序:ruby-prof./my-prog.rb但是,输出非常冗长,因为包含所有Ruby核心和标准库方法以及其他gem的分析数据。例如,前三行是:8.790.0110.0100.0000.0013343*String#%7.280.0780.0090.0000.0692068*Array#each4.930.0380.0060.0000.0321098*Array#map这对我来说不是什么有用的信息,因为我已经知道我的程序经常处理字符串和数组,并且大概已经对这些类进行了优化。我只关心我代

  9. ruby - 使用哪种群发消息技术? - 2

    我感到有点困惑——大约24小时以来,我一直在考虑在我的项目中使用哪种组播技术。基本上,我需要的是:创建组(通过一些后端进程)任意客户端广播消息(1:N,N:N)(可能)直接消息(1:1)(重要)使用我自己的后端(例如,通过某种HTTPAPI)对客户端进行身份验证/授权能够通过后端进程(或服务器插件)踢出特定的客户端这是我要的:Ruby或Haxe中的后端相关流程JS+Haxe(Flash9)中的前端—在浏览器中,因此理想情况下通过80/443进行通信,但不一定。因此,这项技术必须能够在HaxeforFlash中轻松访问,最好是Ruby。我一直在考虑:RabbitMQ(或OpenAMQ)、

  10. [面试直通版]操作系统核心之进程、线程与协程(下) - 2

    点击->操作系统复习的文章集目录操作系统线程线程是什么进程与线程的关系用户态/内核态操作系统资源管理内核态用户态内核态/用户态切换程序运行类型分析计算密集型IO密集型结合进程,线程来理解程序运行类型分析协程基础上下文切换协程协程为什么叫协作式线程?协程的优缺点操作系统线程典型问题:简述进程和线程的区别以下内容带您一步步了解线程是什么比进程更小的独立运行的基本单位-线程(Threads)线程的提出主要是为了提高系统内程序并发执行的程度,从而进一步提升系统的吞吐量,充分发挥多核CPU的优越性而设计的引入进程是为了操作系统更加方便地管理程序,使得多个程序能并发管理和执行而线程则是为了减少程序在并发执

随机推荐