<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>I would say that to be able to distinguish easily between different types of objects (in your case Service) using labels. Is the most practical use case. Say you have a cluster with different environments dev, staging, production etc. and you need to find services based on that or any other type of infrastructure rules that you need to apply to your Kubernetes cluster to differentiate between similar objects.</p>
