

It also helps you to consolidate routing rules into one place. This makes it decoupled and isolated from the services you want to expose. You declare, create and destroy it separately to your services. Ingress, on the other hand, is a completely independent resource to your service. NodePort and LoadBalancer let you expose a service by specifying that value in the service’s type. This is typically heavily dependent on the cloud provider-GKE creates a Network Load Balancer with an IP address that you can use to access your service.Įvery time you want to expose a service to the outside world, you have to create a new LoadBalancer and get an IP address. There needs to be some external load balancer functionality in the cluster, typically implemented by a cloud provider. You can set a service to be of type LoadBalancer the same way you’d set NodePort- specify the type property in the service’s YAML. You don’t know what port your service is going to be allocated, and the port might get re-allocated at some point. This is cool and easy, it’s just not super robust. Then, Kubernetes will allocate a specific port on each Node to that service, and any request to your cluster on that port gets forwarded to the service. NodePort is a configuration setting you declare in a service’s YAML. They let you send a request from outside the Kubernetes cluster to a service inside the cluster.

They let you expose a service to external network requests. Kubernetes Ingress vs LoadBalancer vs NodePort With an Ingress, you can easily set this up without creating a bunch of LoadBalancers or exposing each service on the Node. For example, you might want to send requests to /api/v1/ to an api-v1 service, and requests to /api/v2/ to the api-v2 service.

This lets you consolidate your routing rules into a single resource. You configure access by creating a collection of rules that define which inbound connections reach which services. In Kubernetes, an Ingress is an object that allows access to your Kubernetes services from outside the Kubernetes cluster. Deploying your First Ingress Deployment What is an Ingress?
