!!! Overview
[{$pagename}] is a [service] defines a logical set of [Kubernetes Pods] and a way to access them using an [IP Address] and port number pair. 


[{$pagename}] enable a loose coupling between dependent [Kubernetes Pods]. A [{$pagename}] is defined using [YAML] (preferred) or [JSON], like all [Kubernetes] objects. The set of [Kubernetes Pods] targeted by a [{$pagename}] is usually determined by a LabelSelector (see below for why you might want a [{$pagename}] without including selector in the spec).

Although each [Kubernetes Pod] has a unique [IP Address], those IPs are not exposed outside the cluster without a [{$pagename}]. [{$pagename}] allow your [applications] to receive [traffic]. [{$pagename}] can be exposed in different ways by specifying a type in the ServiceSpec:
* ClusterIP (default) - Exposes the [{$pagename}] on an internal [IP Address] in the cluster. This type makes the [{$pagename}] only reachable from within the cluster.
* NodePort - Exposes the Service on the same port of each selected Node in the cluster using NAT. Makes a Service accessible from outside the cluster using <NodeIP>:<NodePort>. Superset of ClusterIP.
* LoadBalancer - Creates an external [load balancer|Load Balancing] in the current [cloud] (if supported) and assigns a fixed, external IP to the [{$pagename}]. Superset of NodePort.
* ExternalName - Exposes the [{$pagename}] using an arbitrary [NAME] (specified by externalName in the spec) by returning a CNAME record with the name. No [proxy] is used. This type requires v1.7 or higher of kube-dns.

[{$pagename}] [routes|routing] [traffic] across a set of [Kubernetes Pods]. [{$pagename}] are the abstraction that allow [Kubernetes Pods] to die and replicate in [Kubernetes] without impacting your [application]. [Discovery|Discovery Mechanism] and [routing] among dependent Pods (such as the frontend and backend components in an [application]) is handled by [{$pagename}]s.

[{$pagename}]s match a set of [Kubernetes Pods] using labels and selectors, a grouping primitive that allows logical operation on objects in [Kubernetes]. Labels are [Key-value] pairs attached to objects and can be used in any number of ways:
* Designate objects for [Development tier], [Testing tier], and [Production tier]
* Embed [version] tags
* Classify an object using tags


!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]