背景
k8s集群使用过程中会涉及到根据条件对k8s资源进行筛选的场景. 比如查看属于某个application的k8s资源,某个指定node上运行的所有pod,以及删除某个namespace下status为Unknown的pod等等.这些场景丢涉及到本篇文章提到的技巧:使用选择器在集群内筛选满足条件的k8s资源.
选择器分类
k8s选择其主要分为两类字段选择器(field-selector)以及标签选择器(label-selector).
字段选择器(field-selector)
字段选择器是基于资源的字段值进行筛选的选择器,
官方对于此选择器的解释(kubectl get --help)
–field-selector=‘’:
Selector (field query) to filter on, supports ‘=’, ‘==’, and ‘!=’.(e.g. --field-selector
key1=value1,key2=value2). The server only supports a limited number of field queries per
type.
注意:官方给出的解释是只有部分字段支持字段选择器,并不是使用kubectl get pod -o yaml看到的资源中的所有字段都可以作为筛选条件.且如果是多个筛选条件,以逗号隔开.
下面看一个例子.有如下的YAML资源文件中定义了两个pod(niginx-normal和nginx-error),其中nginx-normal能正常启动,nginx-error因为镜像版本过高不存在而不会正常启动:
# normal
apiVersion: v1
kind: Pod
metadata:
name: nginx-normal
labels:
app: nginx
release: normal
spec:
containers:

本文介绍了如何在Kubernetes(k8s)集群中使用字段选择器(field-selector)和标签选择器(label-selector)来根据条件筛选资源,包括它们各自的特点、适用场景及示例操作。
最低0.47元/天 解锁文章
787

被折叠的 条评论
为什么被折叠?



