Table 12-1. Service Discovery mechanisms Name Configuration Client type Summary ClusterIP type: ClusterIP .spec.selector Internal The most common internal discovery mechanism Manual IP type: ClusterIP kind: Endpoints Internal External IP discovery Manual FQDN type: ExternalName .spec.externalName Internal External FQDN discovery Headless Service type: ClusterIP .spec.clusterIP: None Internal DNS-based discovery without a virtual IP NodePort type: NodePort External Preferred for non-HTTP traffic LoadBalancer type: LoadBalancer External Requires supporting cloud infrastructure Ingress kind: Ingress External L7/HTTP-based smart routing mechanism This chapter gave a comprehensive overview of all the core concepts in Kubernetes for accessing and discovering services. However, the journey does not stop here. With the  Knative  project, new primitives on top of Kubernetes have been introduced, which help application developers in advanced serving, building, and messaging. In the context of  Service Discovery , the  Knative serving  subproject is of particular interest as it introduces a new Service resource with the same kind as the Services introduced here (but with a different API group). Knative serving provides support for application revision but also for a very flexible scaling of services behind a load balancer. We give a short shout-out to Knative serving in “Knative Build” on page 230 and “Knative Serving” on page 210, but a full discussion of Knative is beyond the scope of this book. In “More Information” on page 219, you will find links that point to detailed information about Knative. 114  |  Chapter 12: Service Discovery