// Module included in the following assemblies:
//
// *networking/ingress_load_balancing/configuring_ingress_cluster_traffic/overview-traffic.adoc

:_mod-docs-content-type: REFERENCE
[id="nw-ingresscontroller-communication-service-methods_{context}"]
= Methods for communicating from outside the cluster

[role="_abstract"]
To enable communication between external networks and services in {product-title}, configure the appropriate ingress method. 

{product-title} provides the following methods for communicating from outside the cluster with services running in the cluster. Note that the methods are listed in order of preference.

* If you have HTTP/HTTPS, use an Ingress Controller.
* If you have a TLS-encrypted protocol other than HTTPS. For example, for TLS
with the SNI header, use an Ingress Controller.
* Otherwise, use a Load Balancer, an External IP, or a `NodePort`.

[options="header"]
|===
|Method |Purpose

|Use an Ingress Controller
|Allows access to HTTP/HTTPS traffic and TLS-encrypted protocols other than HTTPS (for example, TLS with the SNI header).

|Automatically assign an external IP using a load balancer service
|Allows traffic to non-standard ports through an IP address assigned from a pool.
Most cloud platforms offer a method to start a service with a load-balancer IP address.

|About MetalLB and the MetalLB Operator
|Allows traffic to a specific IP address or address from a pool on the machine network.
For bare-metal installations or platforms that are like bare metal, MetalLB provides a way to start a service with a load-balancer IP address.

|Manually assign an external IP to a service
|Allows traffic to non-standard ports through a specific IP address.

|Configure a `NodePort`
|Expose a service on all nodes in the cluster.
|===
