<p>Is there a practical justification for labelling services besides that this services can be queried?</p>

<p>Suppose I've got a service:</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
    name: nginx
    labels:
        app: nginx
</code></pre>

<p>Can I then use that label for something else than querying that service with <code>kubectl get svc -l app=nginx</code>? Are there any other common use-cases? 
Same for Deployments. As a k8s novice I only use labels so that services can match pods and, frankly, don't see much of a use elsewhere.</p>

<p>One of the uses I've come across for labels is for tearing down an application end to end. So when I deploy to kubernetes, I make sure everything related to the same application is labeled as such. That way I just do <code>kubectl delete all --selector=app=foo</code> to delete all the foo related Services, Deployments, Crons etc.</p>
