Kubernetes-Label
Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。
Label的特点:
一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等
一个资源对象可以定义任意数量的Label ,同一个Label也可以被添加到任意数量的资源对象上去
Label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除
可以通过Label实现资源的多维度分组,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。
一些常用的Label 示例如下:
版本标签:"version":"release", "version":"stable"......
环境标签:"environment":"dev","environment":"test","environment":"pro"
架构标签:"tier":"frontend","tier":"backend"
标签定义完毕之后,还要考虑到标签的选择,这就要使用到Label Selector,即:
Label用于给某个资源对象定义标识
Label Selector用于查询和筛选拥有某些标签的资源对象
当前有两种Label Selector:
基于等式的Label Selector
name = slave: 选择所有包含Label中key="name"且value="slave"的对象
env != production: 选择所有包括Label中的key="env"且value不等于"production"的对象
基于集合的Label Selector
name in (master, slave): 选择所有包含Label中的key="name"且value="master"或"slave"的对象
name not in (frontend): 选择所有包含Label中的key="name"且value不等于"frontend"的对象
标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号","进行分隔即可。例如:
name=slave,env!=production
name not in (frontend),env!=production
命令方式
# 为pod资源打标签 [root@master ~]# kubectl label pod nginx-pod version=1.0 -n dev pod/nginx-pod labeled # 为pod资源更新标签 [root@master ~]# kubectl label pod nginx-pod version=2.0 -n dev --overwrite pod/nginx-pod labeled # 查看标签 [root@master ~]# kubectl get pod nginx-pod -n dev --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx-pod 1/1 Running 0 10m version=2.0 # 筛选标签 [root@master ~]# kubectl get pod -n dev -l version=2.0 --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx-pod 1/1 Running 0 17m version=2.0 [root@master ~]# kubectl get pod -n dev -l version!=2.0 --show-labels No resources found in dev namespace. #删除标签 [root@master ~]# kubectl label pod nginx-pod version- -n dev pod/nginx-pod labeled
配置方式
apiVersion: v1 kind: Pod metadata:name: nginxnamespace: devlabels:version: "3.0" env: "test" spec:containers:- image: nginx:latestname: podports:- name: nginx-portcontainerPort: 80protocol: TCP
然后就可以执行对应的更新命令了:kubectl apply -f pod-nginx.yaml
Kubernetes-Label相关推荐
- Jenkins 使用 Kubernetes Plugin 完成持续构建与发布
介绍 基于Kubernetes和Jenkins来实现CI/CD. 所有需要跑任务的jenkins slave(pod)通过模版动态创建,当任务执行结束自动删除. 系统整体架构 job流程 环境 kub ...
- Kubernetes更优雅的监控工具Prometheus Operator
Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(一)
目录 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Kubernates+Docker+Jenkins持续集成架构图 Kube ...
- 从Jenkins迁移到Jenkins X:一场持续交付之旅\n
这篇文章将介绍dailymotion(一家总部位于巴黎的视频分享网站)从Jenkins迁移到Jenkins X的故事,包括我们遇到的问题以及我们如何解决它们. 背景 在dailymotion,我们信奉 ...
- AWS — AWS 上的 5G 网络
目录 文章目录 目录 AWS 上的 E2E 5G 网络 AWS 上的 5G Core Network Service Based Architecture CP 的高可用部署 UP 的多网络平面 St ...
- k8s中通过Jenkins蓝绿/灰度发布微服务
1.滚动发布 常用发布方式有蓝绿发布.灰度发布.滚动发布,由于k8s中deployment的特性,默认情况下是滚动发布,其实只要更新deployment中的镜像标签,即是滚动发布,通过spec.str ...
- Tekton系列之实践篇-由Jenkins改成Tekton
微信公众号:运维开发故事,作者:乔克 在<Tekton系列之实践篇-我的第一条Pipeline>中我们已经实现了第一条流水线,但是这条流水线还是比较简单,完成了基础的功能.这篇文章带你怎么 ...
- 《k3s 源码解析4 ---- k3s重要数据结构》
k3s完全兼容k8s,我解释一下是为什么: 因为k3s的底层数据结构(写入etcd/mysql/sqlite/dsqlite数据库的格式),是完全照搬k8s的数据结构.api完全兼容. 对外表现相同, ...
- KubeSphere DevOps流水线部署
文章目录 一. 安装 1.1 下载yaml 1.2 设置默认StorageClass 1.3 安装 1.4 配置 1.5 查看 1.6 页面 二. 流水线部署 2.1 开启流水线设置 2.1.1 未安 ...
- k8s+jenkins发布java服务
Centos7安装k8s容器集群请查阅: 一.准备的基础环境 1.gitlab环境(已有),如无则搭建,这里使用docker部署 $ mkdir /home/docker/gitlab -p $ do ...
最新文章
- CentOS7_装机软件推荐
- codevs 4560 NOIP2015 D2T2 子串
- C++ 术语(C++ Primer)
- 微软发布 SQL Server 2019 新版本
- HTTP Status 500 - 问题
- 一些SharePoint 2007开发的在线课程
- 如何用python批量下载数据_Python实现批量下载文件
- POJ 3037 SPFA
- http://ilinuxkernel.com/?p=1328
- VS2019详细安装教程
- 直博人数远大于硕士人数,清华计算机系到底有多强?
- 面试反问环节“你有什么问题想问的”踩雷一记
- 走进龙芯3A3000(三)在Gentoo N64上安装xorg-server
- XML与java对象互转文档
- PDF怎么合并?分享几种非常简单的合并方法
- Excel一键求得单元格内数值个数的操作!
- csdn里的KaTex 公式语法
- 实现自动WiFi连接
- EasyExcel · 写excel
- Fiddler抓包6-打断点(bpu)