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
相关文章:
相关推荐: