Kubernets
简介
kubeadm-单节点-ubuntu
kubeadm-单节点-centos
资源管理
Namespace
Pod
Pod控制器
Pod生命周期
Pod调度
Label
Service
数据存储
安全认证
DashBoard
kubeadm-高可用集群-ubuntu
kubeadm-高可用集群-centos
本文档使用 MrDoc 发布
-
+
首页
Label
# 简介 **Label是kubernetes的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。可以通过Label实现资源的多纬度分组,以便灵活、方便地进行资源分配、调度、配置和部署等管理工作。** **Label的特点:** - 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等。 - 一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。 - Label通常在资源对象定义时确定,当然也可以在对象创建后动态的添加或删除。 > 一些常用的Label标签示例如下: 版本标签:“version”:”release”,”version”:”stable” 环境标签:“environment”:”dev”,“environment”:”test”,“environment”:”pro” 架构标签:“tier”:”frontend”,”tier”:”backend” # Label Selector **标签定义完毕之后,还要考虑到标签的选择,这就要用到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”或value=“slave”的对象。 name not in (master,slave):选择所有包含Label中的key=“name”并且value!=“master”和value!=“slave”的对象。 **标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号(,)进行分隔即可。** name=salve,env!=production。 name not in (master,slave),env!=production。 # 创建 启动2个pod ```asp kubectl run nginx-1 --image=nginx --port=80 kubectl run nginx-2 --image=nginx --port=80 ``` 查看pod名 ```asp kubectl get pod ``` ```asp NAME READY STATUS RESTARTS AGE nginx-1-6979779c6d-xnkt9 1/1 Running 0 60s nginx-2-5876bd7b66-l6hwt 1/1 Running 0 60s ``` 给nginx-1的pod创建名为version=1.0的标签 ```asp kubectl label pod nginx-1-6979779c6d-xnkt9 version=1.0 ``` # 查看 查看标签(nginx-1有标签nginx-2没有标签) ```asp kubectl get pod --show-labels ``` ```asp NAME READY STATUS RESTARTS AGE LABELS nginx-1-6979779c6d-xnkt9 1/1 Running 0 2m1s pod-template-hash=6979779c6d,run=nginx-1,version=1.0 nginx-2-5876bd7b66-l6hwt 1/1 Running 0 2m1s pod-template-hash=5876bd7b66,run=nginx-2 ``` # 筛选 只查看特定版本的pod“-l + 筛选条件” ```asp kubectl get pod -l "version=1.0" --show-labels ``` # 更新 更新标签1.0为2.0 ```asp kubectl label pod nginx-1-6979779c6d-xnkt9 version=2.0 --overwrite ``` # 删除 删除标签使用“-” ```asp kubectl label pod nginx-1-6979779c6d-xnkt9 version- ``` 查看标签(nginx-1已经没有标签了) ```asp kubectl get pod --show-labels ``` 删除2个pod ```asp kubectl delete deployment nginx-1 kubectl delete deployment nginx-2 ``` # 标签-基于Yaml管理 创建配置文件更新nginx标签,版本3.0,环境test ```asp cat <<EOF> pod-nginx-labels.yaml apiVersion: v1 kind: Pod metadata: name: nginx labels: version: "3.0" env: "test" spec: containers: - image: nginx:1.17.1 imagePullPolicy: IfNotPresent name: pod ports: - name: nginx-port containerPort: 80 protocol: TCP EOF ``` 启动 ```asp kubectl apply -f pod-nginx-labels.yaml ``` 查看 ```asp kubectl get pod --show-labels ``` 删除 ```asp kubectl delete -f pod-nginx-labels.yaml ```
done
2024年6月30日 16:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码