Kubernetes----标签Label的常用操作

简介: Kubernetes----标签Label的常用操作

【原文链接】

一、使用命令行方式操作标签

1.1 准备条件

创建dev,并创建两个pod,如下:

[root@master demo]# kubectl create namespace dev
namespace/dev created
[root@master demo]# kubectl run nginx1 --image=nginx:1.17.1 --port=8080 -n dev
pod/nginx1 created
[root@master demo]# kubectl run nginx2 --image=nginx:1.17.3 --port=8181 -n dev
pod/nginx2 created
[root@master demo]# kubectl get pod -n dev
NAME     READY   STATUS    RESTARTS   AGE
nginx1   1/1     Running   0          62s
nginx2   1/1     Running   0          37s
[root@master demo]#

1.2 查看Pod标签命令

如下,可以看到此时已经增加了标签,run=nginx1和run=nginx2

[root@master demo]# kubectl get pod -n dev --show-labels
NAME     READY   STATUS    RESTARTS   AGE     LABELS
nginx1   1/1     Running   0          2m16s   run=nginx1
nginx2   1/1     Running   0          111s    run=nginx2
[root@master demo]#

1.3 使用命令给pod增加标签

如下,给nginx1增加version=1.17.1的标签,给nginx2增加version=1.17.3的标签

[root@master demo]# kubectl label pod nginx1 version=1.17.1 -n dev
pod/nginx1 labeled
[root@master demo]# kubectl label pod nginx2 version=1.17.3 -n dev
pod/nginx2 labeled
[root@master demo]# kubectl get pod -n dev --show-labels
NAME     READY   STATUS    RESTARTS   AGE     LABELS
nginx1   1/1     Running   0          4m48s   run=nginx1,version=1.17.1
nginx2   1/1     Running   0          4m23s   run=nginx2,version=1.17.3
[root@master demo]#

1.4 使用等式方式根据标签过滤

如下使用等号过滤

[root@master demo]# kubectl get pod -l "version=1.17.1" -n dev
NAME     READY   STATUS    RESTARTS   AGE
nginx1   1/1     Running   0          8m29s
[root@master demo]#

如下使用不等号过滤

[root@master demo]# kubectl get pod -l "version!=1.17.1" -n dev
NAME     READY   STATUS    RESTARTS   AGE
nginx2   1/1     Running   0          8m42s
[root@master demo]#

1.5 使用集合的方式过滤标签

如下使用in的方式

[root@master demo]# kubectl get pod -l "version in (1.17.1)" -n dev
NAME     READY   STATUS    RESTARTS   AGE
nginx1   1/1     Running   0          10m
[root@master demo]#

如下,使用notin的方式

[root@master demo]# kubectl get pod -l "version notin (1.17.1)" -n dev
NAME     READY   STATUS    RESTARTS   AGE
nginx2   1/1     Running   0          11m
[root@master demo]#

1.6 更新标签

如下,将nginx1的version标签值更改为1.0

[root@master demo]# kubectl label pod nginx1  version=1.0 -n dev --overwrite
pod/nginx1 labeled
[root@master demo]# kubectl get pod -n dev --show-labels
NAME     READY   STATUS    RESTARTS   AGE   LABELS
nginx1   1/1     Running   0          21m   run=nginx1,version=1.0
nginx2   1/1     Running   0          21m   run=nginx2,version=1.17.3
[root@master demo]#

1.7 删除标签

如下,将nginx1的version标签删除

[root@master demo]# kubectl label pod nginx1 version- -n dev
pod/nginx1 labeled
[root@master demo]# kubectl get pod -n dev --show-labels
NAME     READY   STATUS    RESTARTS   AGE   LABELS
nginx1   1/1     Running   0          23m   run=nginx1
nginx2   1/1     Running   0          22m   run=nginx2,version=1.17.3
[root@master demo]#

二、使用配置文件创建标签

2.1 编写配置文件

如下,编写pod_nginx_label.yaml文件,内容如下:即创建一个命名空间dev,并创建一个pod,同时给pod打version=1.0和env=test的标签

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
  labels:
    version: "1.0"
    env: "test"
spec:
  containers:
  - image: nginx:1.17.3
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

2.2 使用配置文件创建资源

使用如下命令创建资源

[root@master demo]# kubectl apply -f pod_nginx_label.yaml
namespace/dev unchanged
pod/nginx created
[root@master demo]#

如下,查询发现已经创建成功

[root@master demo]# kubectl get pod -n dev --show-labels
NAME    READY   STATUS    RESTARTS   AGE   LABELS
nginx   1/1     Running   0          81s   env=test,version=1.0
[root@master demo]#
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
Kubernetes 持续交付 容器
Kubernetes Resources Scaleup 的几种常用操作
Kubernetes Resources Scaleup 的几种常用操作
27 0
|
4月前
|
Kubernetes 测试技术 开发工具
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
云效我标签只有测试环境:但我其实对应了两个k8s集群(测试A,测试B)环境,这种情况怎么处理呢?
117 1
|
4月前
|
Kubernetes 调度 异构计算
k8s Label 2
k8s Label 2
|
7月前
|
Kubernetes 负载均衡 前端开发
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
揭秘Kubernetes标签和选择器:发挥元数据的威力
|
9月前
|
Kubernetes Shell 调度
【k8s 系列】k8s 学习十六,Label 2
在 k8s 中,我们会轻轻松松的部署几十上百个微服务,这些微服务的版本,副本数的不同进而会带出更多的 pod
120 0
|
9月前
|
Kubernetes 容灾 应用服务中间件
【k8s 系列】k8s 学习十一,Label,RC,HPA
上面简单说了一下 pod 的基本知识点,待到后面会使用到 pod 的一些高阶知识点的时候,还可以再细细琢磨底层原理
|
11月前
|
弹性计算 Kubernetes 前端开发
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
234 0
|
Kubernetes API Perl
开发 k8s 管理平台 - k8sailor 09. 通过 deployment label 获取 pod 信息
开发 k8s 管理平台 - k8sailor 09. 通过 deployment label 获取 pod 信息
462 0
开发 k8s 管理平台 - k8sailor 09. 通过 deployment label 获取 pod 信息
|
存储 Kubernetes API
k8s 准入控制器【3】--编写和部署准入控制器 Webhook--根据标签才可创建pod
k8s 准入控制器【3】--编写和部署准入控制器 Webhook--根据标签才可创建pod
|
Kubernetes 安全 应用服务中间件
k8s 高级调度 亲和力和反亲和力、绑定标签、污点容忍污点
k8s 高级调度 亲和力和反亲和力、绑定标签、污点容忍污点

推荐镜像

更多