How to do it...

  1. Let's try to create several Pods with the previous labels to distinguish different projects, environments, and tiers, as follows:
YAML Filename Pod Image Project Environment Tier
pilot-dev.yaml nginx pilot develop frontend
pilot-dev.yaml memcached cache
pilot-prod.yaml nginx production frontend
pilot-prod.yaml memcached cache
poc-dev.yaml httpd poc develop frontend
poc-dev.yaml memcached cache
  1. For convenience, we will prepare three YAML files that contain two Pods each, with a YAML separator --- between Pods:
  • pilot-dev.yaml:
apiVersion: v1
kind: Pod
metadata:
name: pilot.dev.nginx
labels:
project: pilot
environment: develop
tier: frontend
spec:
containers:
- name: nginx
image: nginx
---
apiVersion: v1
kind: Pod
metadata:
name: pilot.dev.memcached
labels:
project: pilot
environment: develop
tier: cache
spec:
containers:
- name: memcached
image: memcached
  • pilot-prod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: pilot.prod.nginx
labels:
project: pilot
environment: production
tier: frontend
spec:
containers:
- name : nginx
image: nginx
---
apiVersion: v1
kind: Pod
metadata:
name: pilot.prod.memcached
labels:
project: pilot
environment: production
tier: cache
spec:
containers:
- name: memcached
image: memcached
  • poc-dev.yaml:
apiVersion: v1
kind: Pod
metadata:
name: poc.dev.httpd
labels:
project: poc
environment: develop
tier: frontend
spec:
containers:
- name: httpd
image: httpd
---
apiVersion: v1
kind: Pod
metadata:
name: poc.dev.memcached
labels:
project: poc
environment: develop
tier: cache
spec:
containers:
- name: memcached
image: memcached
  1. Create those six Pods with the kubectl create command, as follows, to see how labels are defined:
$ kubectl create -f pilot-dev.yaml
pod "pilot.dev.nginx" created
pod "pilot.dev.memcached" created


$ kubectl create -f pilot-prod.yaml
pod "pilot.prod.nginx" created
pod "pilot.prod.memcached" created


$ kubectl create -f poc-dev.yaml
pod "poc.dev.httpd" created
pod "poc.dev.memcached" created
  1. Run kubectl describe <Pod name> to check labels, as follows. It looks good, so let's use the label selector to query these Pods by different criteria:
$ kubectl describe pod poc.dev.memcache
Name: poc.dev.memcached
Namespace: default
Node: minikube/192.168.99.100
Start Time: Sun, 17 Dec 2017 17:23:15 -0800
Labels: environment=develop
project=poc
tier=cache
Annotations: <none>
Status: Running
...
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.38.92