〖Kubernetes指南⑤〗Label快速入门

网友投稿 777 2022-11-07

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

〖Kubernetes指南⑤〗Label快速入门

LabelLabel是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 Selectorname = slave: 选择所有包含Label中key="name"且value="slave"的对象env != production: 选择所有包括Label中的key="env"且value不等于"production"的对象基于集合的Label Selectorname in (master, slave): 选择所有包含Label中的key="name"且value="master"或"slave"的对象name not in (frontend): 选择所有包含Label中的key="name"且value不等于"frontend"的对象标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号","进行分隔即可。例如:name=slave,env!=productionname not in (frontend),env!=production命令方式# 为pod资源打标签[root@master ~]# kubectl label pod nginx-pod version=1.0 -n devpod/nginx-pod labeled# 为pod资源更新标签[root@master ~]# kubectl label pod nginx-pod version=2.0 -n dev --overwritepod/nginx-pod labeled# 查看标签[root@master ~]# kubectl get pod nginx-pod  -n dev --show-labelsNAME        READY   STATUS    RESTARTS   AGE   LABELSnginx-pod   1/1     Running   0          10m   version=2.0# 筛选标签[root@master ~]# kubectl get pod -n dev -l version=2.0  --show-labelsNAME        READY   STATUS    RESTARTS   AGE   LABELSnginx-pod   1/1     Running   0          17m   version=2.0[root@master ~]# kubectl get pod -n dev -l version!=2.0 --show-labelsNo resources found in dev namespace.#删除标签[root@master ~]# kubectl label pod nginx-pod version- -n devpod/nginx-pod labeled配置方式apiVersion: v1kind: Podmetadata:  name: nginx  namespace: dev  labels:    version: "3.0"     env: "test"spec:  containers:  - image: nginx:latest    name: pod    ports:    - name: nginx-port      containerPort: 80      protocol: TCP然后就可以执行对应的更新命令了:kubectl apply -f pod-nginx.yaml

上一篇:软件测试培训之测试的常识
下一篇:软件测试培训之回归测试的基本过程及实践
相关文章

 发表评论

暂时没有评论,来抢沙发吧~