Contents

Kubernetes Labels and Selector

Labels

POD A-frt
KeyValue
appfrontend
colorred
shapetriangle
POD B-fyt
KeyValue
appfrontend
coloryellow
shapetriangle
POD C-fgt
KeyValue
appfrontend
colorgreen
shapetriangle
POD D-brt
KeyValue
appbackend
colorred
shapetriangle
POD E-byt
KeyValue
appbackend
coloryellow
shapetriangle
POD F-bgt
KeyValue
appbackend
colorgreen
shapetriangle
POD G-frr
KeyValue
appfrontend
colorred
shaperectangle
POD H-byr
KeyValue
appbackend
coloryellow
shaperectangle
POD I-bgr
KeyValue
appbackend
colorgreen
shaperectangle

Selector

Selector 1

1
kubectl get pods --selector app=backend,shape=rectangle
KeyValue
appbackend
shaperectangle
Selected PODs by Selector 1
POD
POD H-byr
POD I-bgr

Selector 2

1
kubectl get pods --selector app=frontend,color=red
KeyValue
appfrontend
colorred
Selected PODs by Selector 2
POD
POD A-frt
POD G-frr

Selector 3

1
kubectl get pods --selector color=green,shape=rectangle
KeyValue
colorgreen
shaperectangle
Selected PODs by Selector 2
POD
POD I-bgr

YAML

replicaset-definition.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: simple-webapp
  labels:
    app: App1
    function: Front-end
spec:
  replicas: 3
  selector: # -> This selector is matching below labels in template.
    matchLabels:
      app: App1
  template:
    metadata:
      labels:
        app: App1
        function: Front-end
    spec:
      containers:
        - name: simple-webapp
          image: simple-webapp

service-definition.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector: # -> This selector is find ReplicaSet and PODs.
    app: App1
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

Annotations Example

replicaset-annotation-definition.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: simple-webapp
  labels:
    app: App1
    function: Front-end
  annotations:
    buildVersion: 1.34
spec:
  replicas: 3
  selector: # -> This selector is matching below labels in template.
    matchLabels:
      app: App1
  template:
    metadata:
      labels:
        app: App1
        function: Front-end
    spec:
      containers:
        - name: simple-webapp
          image: simple-webapp