k8s 实战 3----标签

诗林  高级会员 | 2024-7-10 11:20:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 226|帖子 226|积分 678

如果你对k8s还不了解,可以看下前文
k8s 实战 1 ---- 初识       (https://www.cnblogs.com/jilodream/p/18245222)
k8s 实战 2 ---- pod 基础   (https://www.cnblogs.com/jilodream/p/18284282)
什么是标签?
标签也就是Label,是作用在k8s的资源上的,用来记载的资源的状态,或元数据的一组数据。
label本质上就是一组键值对。
我们可以将其作用在pod,deployment、node等等资源上。
这一点和java语言中的注解非常像。我们可以通过注解来标志类或者方法或者属性,这些注解并不会直接改变类或者方法什么特性。而是由其它的方法
分析这些注解,从而做出符合须要的判断。
举个例子,假若我们的pod,由于某种须要,分别须要标志出是由谁在维护当前pod,我们就可以通过标签来记载这些信息。
话不多说,来看代码:
1、首先我们按照如下yaml模板,创建一个pod。
留意看metadata 标签下,新加了labels ,表示要添加的标签及其值。
我们这里增长用户(user)和模块 (module)两个标签,yaml文件如下:
  1. 1 apiVersion: v1
  2. 2 kind: Pod
  3. 3 metadata:
  4. 4   name: busyb-p
  5. 5   labels:
  6. 6     user: happy
  7. 7     module: order
  8. 8 spec:
  9. 9   containers:
  10. 10     - image: docker.io/library/kuard-amd64:blue
  11. 11       name: bb-c
  12. 12       ports:
  13. 13         - containerPort: 8080
  14. 14           name: http
  15. 15           protocol: TCP
复制代码
创建好之后,我们可以追加参数的形式,检察pod中包罗的标签
kubectl get xx --show-labels  xx表示资源类型
  1. 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k get pods --show-labels
  2. 2 NAME                              READY   STATUS    RESTARTS   AGE    LABELS
  3. 3 busyb-p                           1/1     Running   0          11s    module=order,user=happy
复制代码
留意看,LABELS列即为我们添加的标签:module 和user
我们还可以在pod运行期时,手动的增删标签:
kubectl label xx xxx "标签key=标签value"  xx表示资源类型 xxx表示资源名称
如先动态新增version标签,再修改version标签。留意修改时,须要追加参数( --overwrite),否则会修改不乐成
  1. 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k label pod busyb-p "version=dev"
  2. 2 pod/busyb-p labeled
  3. 3 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k get pods --show-labels
  4. 4 NAME                              READY   STATUS    RESTARTS   AGE    LABELS
  5. 5 busyb-p                           1/1     Running   0          35m    module=order,user=happy,version=dev
  6. 6
  7. 7 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k label pod busyb-p "version=test" --overwrite
  8. 8 pod/busyb-p labeled
  9. 9 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k get pods --show-labels
  10. 10 NAME                              READY   STATUS    RESTARTS   AGE    LABELS
  11. 11 busyb-p                           1/1     Running   0          47m    module=order,user=happy,version=test
复制代码
如果要删除某个标签,kubectl label pod busyb-p "标签key-",如下:
  1. 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k label pod busyb-p "level-"
  2. 2 pod/busyb-p unlabeled
  3. 3 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# k get pods --show-labels
  4. 4 NAME                              READY   STATUS    RESTARTS   AGE    LABELS
  5. 5 busyb-p                           1/1     Running   0          71m    module=order,user=happy,version=product
复制代码
在shell界面,如果标签太多,我们除了可以用管道追加grep的传统过滤办法,也可以使用k8s的过滤参数
kubectl get pods --selector="标签key=标签value"
也可以用-l 代替--selector
  1. 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# kubectl get pods --selector="user=happy,module=order"
  2. 2 NAME      READY   STATUS    RESTARTS   AGE
  3. 3 busyb-p   1/1     Running   0          74m
  4. 4
  5. 5 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# kubectl get pods -l "user=happy,module=order"
  6. 6 NAME      READY   STATUS    RESTARTS   AGE
  7. 7 busyb-p   1/1     Running   0          76m
复制代码
如果要显示某个指定的标签:
-L "标签key"
  1. 1 [root@iZ2ze3bpa0o5cw6gp42ry2Z learnK8s]# kubectl get pods  -L "version"
  2. 2 NAME                              READY   STATUS    RESTARTS   AGE    VERSION
  3. 3 busyb-p                           1/1     Running   0          78m    product
复制代码
以上就是标签的根本操纵,那么他除了用户的平凡标志还有什么用呢?
其实标签的作用非常之大,k8s整体是一个解耦的体系,组件之间是独立运行的。但是组件之间又互相须要通信或者是标志来感知状态。
此时就须要标签作为前言,进行信息的传输,比如:
1、我们在启动pod时,要限制pod在哪些节点上运行,此时就须要在节点上打好标签。接着在pod的yaml模板中,限制好要启动节点的标签。(节点就是k8s集群中各个呆板,也就是node)
2、deployment要固定pod的副本数,此时就须要通过标签进行过滤,如果筛选出的标签多了,就删除,如果少了就创建。(deployment 是一种更高级的资源,也称之为“部署”,可以简单的明白为批量对一批pod进行管理和部署,后文会专门先容)
标签就相当于是一个粘合剂,把不同的资源组件通过标签进行关联。使k8s的资源和各个组件可以完整的整合到一起,形成一套完整的体系。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表