配置文件中指定 kind为 Pod 时,那么此时创建的pod为单独的(自主式)pod,没有控制器管理的pod
三、Label
Lable是系统中的一个重要概念 。它的作用就是在资源上添加标识,用来对它们进行区分和选择 。
Label的特点:
可以通过Lable实现资源的多维度分组,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作
—些常用的Label示例如下:版本标签: "version":""release", "version":"stable"......环境标签: "environment":"dev" ,"environment":"test","environment":"pro"架构标签: "tier":"frontend","tier"":"backend"
标签定义完毕之后,还要考虑到标签的选择,这就要使用到 Label,即:
当前有两种Label :
name = slave# 选择所有包含Label中key="name"且value="http://www.kingceram.com/post/slave"的对象 env != production# 选择所有包括Label中的 key="env" 且 value 不等于 "production" 的对象
name in (master,slave)# 选择所有包含Label中的key="name"且value="http://www.kingceram.com/post/master"或"slave"的对象name notin (frontend)# 选择所有包含Label中的key=“name"且value不等于"frontend"的对象标签的
选择条件可以使用多个,此时将多个Label 进行组合,使用逗号”"进行分隔即可 。
例如:
name=slave,env!=productionname not in (frontend),envl=production
命令方式
[root@k8s-master ~]# kubectl get pod -n testNAMEREADYSTATUSRESTARTSAGEnginxpod1/1Running07m32s# 为pod资源打标签# kubectl label 资源 资源名 key=value -n namespace[root@k8s-master ~]# kubectl label pod nginxpod version=1.0 -n testpod/nginxpod labeled# 查看标签# kubectl get 资源 资源名 -n namespace --show-labels[root@k8s-master ~]# kubectl get pod nginxpod -n test --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginxpod1/1Running09m16sversion=1.0# 为pod资源更新标签# kubectl label 资源 资源名 'key=value' -n namespace --overwrite[root@k8s-master ~]# kubectl label pod nginxpod 'version=2.0' -n test --overwritepod/nginxpod labeled[root@k8s-master ~]# kubectl get pod nginxpod -n test --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginxpod1/1Running010mversion=2.0# 查看指定资源的指定标签# kubectl get 资源 -l key=value -n namespace --show-labels[root@k8s-master ~]# kubectl get pod -l "version=2.0" -n testNAMEREADYSTATUSRESTARTSAGEnginxpod1/1Running018m[root@k8s-master ~]# kubectl get pod -l 'version=2.0' -n test --show-labels# 或者 kubectl get pod -l 'version in (2.0)' -n test --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginxpod1/1Running018mversion=2.0# 查看标签中 key=version 但 value 不是2.0和3.0的所有pod资源: # kubectl get pod -l 'version!=2.0,version!=3.0' -n test# 或者 kubectl get pod -l 'version notin (2.0,3.0)' -n test# 删除标签# kubectl label 资源 资源名 key- -n namespace[root@k8s-master ~]# kubectl label pod nginxpod version- -n testpod/nginxpod labeled[root@k8s-master ~]# kubectl get pod -n test --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginxpod1/1Running020m
文章插图
配置方式
[root@k8s-master ~]# vim lable-pod.yaml apiVersion: v1kind: Podmetadata:name: nginx-podnamespace: testlabels:version: "4.0"tier: "fronted"spec:containers:- image: nginx:1.17.1imagePullPolicy: IfNotPresentname: nginx-containports:- name: nginx-portcontainerPort: 80protocol: TCP[root@k8s-master ~]# kubectl apply -f lable-pod.yaml pod/nginx-pod created[root@k8s-master ~]# kubectl get pod -n test --show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx-pod1/1Running016stier=fronted,version=4.0
- 学习和计算时特别常用的三角公式
- 【电子元件】常用电子元器件的识别之二极管
- 10个ai算法常用库java版
- ROS2和ROS1常用命令速查与对比
- k8s里面Service中ClusterIP和NodePort的使用
- 12大常用自动化测试工具,请记得转发收藏!
- 三唑醇常用于防治什么
- neo4j 常用功能和语句整理
- Object js对象常用方法(Api)
- 六 Linux:系统运维常用命令