在 Kubernetes(K8s)中,标签(Label)是与资源对象相关联的键值对,用于实现多维度的资源分组管理功能。下面是关于 Kubernetes 标签的增删改查操作的简要说明:

  1. 查询标签 (查)

    要查看资源对象的标签,可以使用 kubectl get 命令并加上 --show-labels 选项。例如,要查看所有节点的标签,可以运行:

    bash复制代码
    
    kubectl get nodes --show-labels

    这将列出集群中所有节点的详细信息,包括它们的标签。

  2. 添加标签 (增)

    使用 kubectl label 命令可以为资源对象添加标签。例如,给名为 my-pod 的 Pod 添加一个 app=web 的标签:

    bash复制代码
    
    kubectl label pods my-pod app=web

    同样,你也可以使用选择器一次性为多个资源对象添加标签:

    bash复制代码
    
    kubectl label pods -l env=production version=v1

    上述命令将为所有具有 env=production 标签的 Pod 添加 version=v1 标签。

  3. 更新标签 (改)

    更新标签实际上是通过删除现有标签并添加新标签来实现的。kubectl label 命令同样可以用于更新标签。例如,将 my-podapp 标签的值从 web 更改为 api

    bash复制代码
    
    kubectl label pods my-pod app=api --overwrite

    --overwrite 标志确保如果标签已经存在,则将其值更新为新值。

  4. 删除标签 (删)

    使用 kubectl label 命令的 --overwrite=true 和不指定新值的方式可以删除标签。例如,删除 my-pod 上的 app 标签:

    bash复制代码
    
    kubectl label pods my-pod app-

    注意在标签键 app 后面有一个连字符 -,这表示删除该标签。

    同样,你也可以使用选择器删除多个资源对象的标签:

    bash复制代码
    
    kubectl label pods -l env=staging app-

    这将删除所有具有 env=staging 标签的 Pod 上的 app 标签。

在 Kubernetes 中,选择器(Selector)是一个核心概念,它允许你根据标签(Label)来识别和选择资源对象,如 Pods、Services、Deployments 等。选择器在 Kubernetes 中有多种使用场景,如路由流量、管理副本集、发现服务等。

以下是 Kubernetes 选择器的一些常见使用场景:

  1. Service 的流量路由:

    • Service 使用选择器来定义哪些 Pods 的流量应该被路由。通过为 Service 指定一个标签选择器,Kubernetes 能够将流量正确地路由到匹配的 Pods。
    • 例如,一个 Service 可能选择所有具有 app=web 标签的 Pods,并将流量路由到这些 Pods。
  2. ReplicaSet 和 Deployment 的管理:

    • ReplicaSet 和 Deployment 控制器使用选择器来管理具有特定标签的 Pod 副本。
    • 通过选择器,控制器能够知道哪些 Pods 属于其管理范围,并根据需要扩展或缩减 Pod 数量。
  3. 资源的过滤和发现:

    • 使用 kubectl 命令行工具时,你可以通过选择器来过滤和发现资源对象。
    • 例如,kubectl get pods -l app=web 命令将只显示具有 app=web 标签的 Pods。
  4. Ingress 的路由配置:

    • Ingress 资源可以使用选择器来配置路由规则和流量转发。
    • 通过选择器,Ingress 能够识别哪些 Service 或 Pods 应该接收特定的外部流量。

选择器的类型

在 Kubernetes 中,有两种类型的选择器:等式选择器(Equality-Based Selector)和集合选择器(Set-Based Selector)。

  • 等式选择器:使用等号 = 来匹配标签的值。例如,app=web 选择所有具有 app 标签且值为 web 的资源对象。
  • 集合选择器:使用 innotinexistsdoesnotexist 等操作符来匹配标签的值。例如,env in (production, staging) 选择所有具有 env 标签且其值为 productionstaging 的资源对象。

选择器的应用

在实际应用中,你通常会在创建资源对象(如 Service、Deployment 等)时指定选择器。这可以通过在 YAML 或 JSON 配置文件中设置 selector 字段来实现。

例如,在创建一个 Service 时,你可能会有如下的配置:

apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: web
ports:
- protocol: TCP
port: 80
targetPort: 9376

在这个例子中,selector 字段定义了哪些 Pods 应该被这个 Service 所选择。在这个例子中,所有具有 app=web 标签的 Pods 将被这个 Service 所选择,并且流量将被路由到这些 Pods 的 9376 端口。

总之,选择器是 Kubernetes 中非常重要的一个概念,它允许你基于标签对资源对象进行精细化的管理和路由。通过合理使用选择器,你可以更加灵活地管理和部署你的 Kubernetes 应用。

k8s标签的增删改查和选择器的更多相关文章

  1. 使用JS对HTML标签进行增删改查

    以下为通过JS对li标签进行简单的增删改查: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  2. Mybatis的简单增删改查

    刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...

  3. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  4. HTML DOM(二):节点的增删改查

    上一篇讲述了DOM的基本知识,从其得知,在DOM眼中,HTML的每个成分都可以看作是节点(文档节点.元素节点.文本节点.属性节点.注释节点,其中,属性节点是属于元素节点),本篇的内容就是通过DOM对这 ...

  5. 超详细的DOM操作(增删改查)

    操作DOM的核心就是增删改查 原文地址:https://jianshu.com/p/b0aa846f4dcc 目录 一.节点创建型API 1.1 createElement 1.2 createTex ...

  6. DOM的操作(增删改查)

    操作DOM的核心就是增删改查 目录 一.节点创建型API 1.1 createElement 1.2 createTextNode 1.3 cloneNode 1.4 createDocumentFr ...

  7. Batis-iBatis基本操作(增删改查)

    Batis-iBatis基本操作(增删改查) 时间 2014-04-10 17:55:20  CSDN博客 原文  http://blog.csdn.net/mazhaojuan/article/de ...

  8. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  9. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  10. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

随机推荐

  1. LyScript 插件实现自定义反汇编

    LyScript 插件默认提供了一个get_disasm_code()方法可以直接获取到指定行数的反汇编代码,但如果需要自定义获取或者是需要自己封装一个反汇编方法,则你可以用如下两种方式来得到. 插件 ...

  2. Docker从认识到实践再到底层原理(二-1)|容器技术发展史+虚拟化容器概念和简介

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...

  3. 【路由器】电信光猫中兴 F7010C 折腾记录

    目录 问题描述 解锁超管密码 前言 配置安卓抓包环境 抓包获取超管密码 IPv6 配置 光猫拨号 改用 SLAAC 路由器配置 wan6 配置 wan 配置 lan 配置 验证 参考资料 问题描述 近 ...

  4. docker 安装的jenkins如何执行宿主机的shell启动jar包

    最近在用docker做自动化部署的时候遇到一个问题,就是用docker装的jenkins可以通过映射执行宿主机脚本.但是,却无法通过shell脚本启动宿主机jar包.经排查最终用以下方案完美解决. 一 ...

  5. Linux-MySQL导入示例数据库employees

    1. 下载employees示例数据库employees是一个官方提供的简单数据库,在mysql的官方找到employees的说明页面,通过github下载该数据库. https://github.c ...

  6. NC16655 [NOIP2005]过河

    题目链接 题目 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可 ...

  7. Linux学习资料锦集

    Linux  学习资料链接: (1)Linux常见命令及其用法_STM32李逼的博客-CSDN博客 (2)Linux命令了解_STM32李逼的博客-CSDN博客 3)Linux使用编辑器_STM32李 ...

  8. 使用html+css+js实现一个仿钉钉打卡按钮

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 微信小程序云开发项目-个人待办事项-04【我的】模块开发

    上一篇: 微信小程序云开发项目-个人待办事项-03[主页]模块开发 https://blog.csdn.net/IndexMan/article/details/124538576 模块开发步骤 本篇 ...

  10. React native随笔——解决navigation导航栏 android和ios样式不统一

    navigation导航栏存在android和ios样式不统一的问题.Android手机上标题不居中,导航栏与状态栏重合. 解决方法为在navigationOptions中进行如下配置. 一.Andr ...