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]#
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4月前
|
Kubernetes 容器
Kubernetes附加组件Dashboard部署实战篇
关于如何在Kubernetes集群中部署和配置Dashboard组件的详细实战指南,涵盖了从创建证书、部署Dashboard、设置服务访问到登录认证的完整流程。
554 0
Kubernetes附加组件Dashboard部署实战篇
|
8月前
|
运维 Kubernetes Linux
Kubernetes详解(十一)——标签与标签选择器
Kubernetes详解(十一)——标签与标签选择器
92 1
|
调度 Perl
07-Kubernetes-Label入门
07-Kubernetes-Label入门
|
存储 Kubernetes 调度
Kubernetes----Pod组件简介
Kubernetes----Pod组件简介
141 0
Kubernetes----Pod组件简介
|
应用服务中间件 nginx Perl
Kubernetes----服务Service的常用操作
Kubernetes----服务Service的常用操作
215 0
Kubernetes----服务Service的常用操作
|
监控 API 调度
Kubernetes----Pod生命周期简介
Kubernetes----Pod生命周期简介
166 0
Kubernetes----Pod生命周期简介
|
存储 应用服务中间件 nginx
Kubernetes----EmptyDir类型的基本存储
Kubernetes----EmptyDir类型的基本存储
460 0
Kubernetes----EmptyDir类型的基本存储
|
存储 Kubernetes 容器
Kubernetes----高级存储之PV和PVC简介
Kubernetes----高级存储之PV和PVC简介
289 0
Kubernetes----高级存储之PV和PVC简介
|
监控 Perl
Kubernetes----Deployment控制器实现版本滚动发布
Kubernetes----Deployment控制器实现版本滚动发布
268 0
Kubernetes----Deployment控制器实现版本滚动发布
|
存储 JSON Kubernetes
Kubernetes----Kubernetes中三种对象管理方式对比
Kubernetes----Kubernetes中三种对象管理方式对比
222 0
Kubernetes----Kubernetes中三种对象管理方式对比