labeltag是什么(实战入门-label标签)

label标签
类似于namespace,不同的是namespace网络不互通,适用于不同系统,网络不互连
label标签,label标签的网络可以互通,适用于一套系统中的前台和后台的关系,要求网络互通,但也需要区分开前台和后台的服务器
***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 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”或”slave”的对象
name not in (frontend): 选择所有包含Label中的key=”name”且value不等于”frontend”的对象

标签的选择条件可以使用多个,此时将多个Label Selector进行组合,使用逗号”,”进行分隔即可。例如:
name=slave,env!=production
name not in (frontend),env!=production

[qq@k8snode1~]$kubectlapply-fdevns.yamlnamespace/devcreated[qq@k8snode1~]$kubectlapply-fnginx.yamlpod/nginxcreated《先创建出一个pod供我们实验》[qq@k8snode1~]$kubectlgetpod-ndev–show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx1/1Running061s<none>《查询label的语句》[qq@k8snode1~]$kubectlgetpods-ANAMESPACENAMEREADYSTATUSRESTARTSAGEdevnginx1/1Running0105skube-systemcoredns-64897985d-bnkbc1/1Running0102mkube-systemetcd-minikube1/1Running1102mkube-systemkube-apiserver-minikube1/1Running2102mkube-systemkube-controller-manager-minikube1/1Running1102mkube-systemkube-proxy-tgbx21/1Running0102mkube-systemkube-scheduler-minikube1/1Running1102mkube-systemstorage-provisioner1/1Running2(102mago)102m《确定一下目标pod》[qq@k8snode1~]$kubectllabelpodnginx-ndevversion=1.0pod/nginxlabeled《这条语句是用来添加label的语句》[qq@k8snode1~]$kubectlgetpod-ndev–show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx1/1Running04m29sversion=1.0《看一下,现在最后一项有了》[qq@k8snode1~]$kubectllabelpodnginx-ndevtier=backpod/nginxlabeled《添加label》[qq@k8snode1~]$kubectlgetpod-ndev–show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx1/1Running05m42stier=back,version=1.0《两个label是用逗号分隔的》[qq@k8snode1~]$kubectllabelpodnginx-ndevversion=2.0–overwritepod/nginxlabeled《–overwrite是用来更新pod的》[qq@k8snode1~]$kubectlgetpod-ndev–show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx1/1Running06m57stier=back,version=2.0《现在变成2.0了》《改一下nginx.yaml文件,再创建一个pod》vinginx.yamlapiVersion:v1kind😛odmetadata:
name:nginx2《改一下name就行》
namespace:devspec:
containers:
-image:nginx:latest
name:pod
ports:
-name:nginx-port
containerPort:80
protocol:TCP[qq@k8snode1~]$kubectlapply-fnginx.yamlpod/nginx2created《声明式对象配置,更新一下》[qq@k8snode1~]$kubectlgetpod-ndevNAMEREADYSTATUSRESTARTSAGEnginx1/1Running08m13snginx21/1Running011s《创建上了在同一个namespace下》[qq@k8snode1~]$kubectllabelpodnginx2-ndevversion=1.0pod/nginx2labeled《我给nginx2的version设置为1.0》[qq@k8snode1~]$kubectllabelpodnginx2-ndevtier=backpod/nginx2labeled《tier=back一致》[qq@k8snode1~]$kubectlgetpod-ndev-ltier=backNAMEREADYSTATUSRESTARTSAGEnginx1/1Running09m23snginx21/1Running081s《先查tier=back,两个都有》[qq@k8snode1~]$kubectlgetpod-ndev-lversion=1.0NAMEREADYSTATUSRESTARTSAGEnginx21/1Running095s《查1.0只有2号》[qq@k8snode1~]$kubectlgetpod-ndev-lversion=2.0NAMEREADYSTATUSRESTARTSAGEnginx1/1Running09m45s《2.0可以查到1号机》[qq@k8snode1~]$kubectlgetpod-ndev–show-labelsNAMEREADYSTATUSRESTARTSAGELABELSnginx1/1Running010mtier=back,version=2.0nginx21/1Running02m10stier=back,version=1.0《我们再试试全看,2.0,1.0》[qq@k8snode1~]$kubectlgetpod-ndev–show-labels-owideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEREADINESSGATESLABELSnginx1/1Running010m172.17.0.3minikube<none><none>tier=back,version=2.0nginx21/1Running02m52s172.17.0.4minikube<none><none>tier=back,version=1.0《很好奇-owide下面有详细信息,会不会有label》[qq@k8snode1~]$kubectlgetpod-ndev-owideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEREADINESSGATESnginx1/1Running011m172.17.0.3minikube<none><none>nginx21/1Running03m3s172.17.0.4minikube<none><none>《-owide下,如果不指定–show-labels,看不到》[qq@k8snode1~]$kubectllabelpodnginx-ndevtier-pod/nginxunlabeled《删除标签,跟别的删除命令不一样》[qq@k8snode1~]$kubectlgetpod-ndev–show-labels-owideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEREADINESSGATESLABELSnginx1/1Running013m172.17.0.3minikube<none><none>version=2.0《1号机现在没有tier=back了》nginx21/1Running05m21s172.17.0.4minikube<none><none>tier=back,version=1.0vilabeln.yaml《创建label的yaml文件》apiVersion:v1kind😛odmetadata:
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[qq@k8snode1~]$kubectlapply-flabeln.yamlpod/nginxconfigured[qq@k8snode1~]$kubectlgetpod-ndev–show-labels-owideNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATEDNODEREADINESSGATESLABELSnginx1/1Running016m172.17.0.3minikube<none><none>env=test,version=3.0《1号机已改》nginx21/1Running08m14s172.17.0.4minikube<none>

(57)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年10月16日
下一篇 2023年10月17日

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们,一经查实,本站将立刻删除。