https://www.cnblogs.com/chuangcc/p/10616462.html

kubectl get pods --show-labels  #查看pod所有标签信息
kubectl get pods -l app  #过滤包含app的标签
kubectl get pods -L app    #过滤包含app的标签及显示值
kubectl label pods pod-demo release=canary  #给pod-demo增加标签
kubectl label pods pod-demo release=stable --overwrite  #修改标签
标签组成

key=value
key:只能使用 字母 数字 _ - . (只能以字母数字开头,不能超过63给字符)
value: 可以为空 只能使用 字母 数字开头

标签选择器

给资源打上标签后,可以使用标签选择器过滤指定的标签
标签选择器目前有两个:基于等值关系和基于集合关系
等值关系操作符:=, == , !=

#使用格式
kubectl get pods -l run=myapp
kubectl get pods -l run=myapp --show-labels
kubectl get pods -l run!=client --show-labels

集合关系的操作符:in,notin,exists
#使用格式

kubectl get pods -l "run in (client,myapp,alpha)" --show-labels   #三个值有一个匹配上都可以
kubectl get pods -l "run notin (client,myapp,alpha)" --show-labels
kubectl get node  --show-labels

另外许多资源支持内嵌字段
matchLabels: 直接给定建值
matchExpressions: 基于给定的表达式来定义使用标签选择器,{key:“KEY”,operator:“OPERATOR”,values:[V1,V2,…]}
操作符: in notin:Values字段的值必须是非空列表 Exists NotExists: Values字段的值必须是空列表

实例:
kube-dashboard 在node01上启动

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    k8s-app: kubernetes-dashboard
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
spec:
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      serviceAccountName: kubernetes-dashboard
      containers:
      - name: kubernetes-dashboard
        image: docker.io/mritd/kubernetes-dashboard-amd64 
        resources:    
          limits:
            cpu: 100m
            memory: 300Mi
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 9090
        livenessProbe:
          httpGet:
            path: /
            port: 9090
          initialDelaySeconds: 30
          timeoutSeconds: 30
      tolerations:
      - key: "CriticalAddonsOnly"
        operator: "Exists"
      nodeSelector:		##新增
        kubernetes.io/hostname: node01  ##新增
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐