前言 Label:对k8s中各种资源进行分类、分组,添加一个具有特别属性的标签 Selector:通过一个过滤的语法进行查找到对应标签的资源 Label是k8s中一个比较重要的概念。一个Label的一个k
前言Label:对k8s中各种资源进行分类、分组,添加一个具有特别属性的标签 Selector:通过一个过滤的语法进行查找到对应标签的资源 Label是k8s中一个比较重要的概念。一个Label的一个key=value的键值对,可以附加到各种资源上。 现总结后讲解 Label的匹配规则:
通过上图可以看到:frontend通过service服务匹配到backend服务器,当service的标签是app=nginx时那么会匹配到backend的两组服务器,但是当service中筛选加上Role=backend-app时,Selector只会筛选到backend服务器组中包含这两种标签的服务器然后进行匹配。 通过下面这条命令可以看到Pod的标签:通过–show-labels参数
那么我们就可以尝试着用kubectl给Pod添加标签:从上列代码中我们是可以看到busybox是没有标签,通过下面这条命令在查看发现已经有标签app=busybox了。
如果一个集群中Pod非常多的时候,我们就可以通过用标签筛选的方式找到想要的Pod;-A参数是查看所有的Pod,但是加上-l app=busybox后只会找到符合这个条件的Pod。
那么问题来了,要是我们不想要这个标签了或者说需要修改这个标签了怎么办? 删除标签:
修改标签:可以看出标签已经是修改后的了。
Labels是很简单的一个东西,接下来我们看看Selector是怎么用的 我想过滤出多个条件的pod又该怎么做呢?
以上就是我们的所有Pod了,我想要找到标签中包含kubernetes-dashboard和kube-dns的容器:
找到了这两个Pod,说明这两个Pod中包含这两个标签,可以在上面的所有容器列表里看看这两个Pod是否含有这两个标签。 还有一种情况是比如我有一批Pod的标签是这样: 我想查看其中不包含ABB=X的所有Pod,可以这样写:
这样的话只会找到Pod02和Pod03。 总结:这个功能不难但是比较重要,也比较常用,一定要知道。 |
2022-08-26
2022-09-23
2022-09-30
2022-09-23
2022-09-17