<p>I'm new to K8s, so still trying to get my head around things. I've been looking at <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="nofollow noreferrer">deployments</a> and can appreciate how useful they will be. However, I don't understand why they don't support services (only replica sets and pods).</p>

<p>Why is this? Does this mean that services would typically be deployed outside of a deployment?</p>

me--
<p>To answer your question, Kubernetes deployments are used for managing stateless services running in the cluster instead of <a href="https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/" rel="nofollow noreferrer">StatefulSets</a> which are built for the stateful application run-time. Actually, with deployments you can describe the update strategy and road map for all underlying objects that have to be created during implementation.Therefore, we can distinguish separate specification fields for some objects determination, like needful replica number of Pods, template for Pod by describing a list of containers that should be in the Pod, etc. </p>

<p>However, as @P Ekambaram already mention in his answer, <a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">Services</a> represent abstraction layer of network communication model inside Kubernetes cluster, and they declare a way to access Pods within a cluster via corresponded <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#endpoints-v1-core" rel="nofollow noreferrer">Endpoints</a>. Services are separated from deployment object manifest specification, because of their mission to dynamically provide specific network behavior for the nested Pods without affecting or restarting them in case of any communication modification via appropriate Service <a href="https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types" rel="nofollow noreferrer">Types</a>.</p>
