Networking
Sometimes, your applications require access to your LittleHorse Cluster from outside of your Kubernetes Cluster. This can be achieved in two ways:
Architecture
There are two points about LittleHorse which make external access slightly tricky:
- The LH Servers speak GRPC, which is done over HTTP 2 and therefore not natively supported by
Ingress
. - Each LH Server must be able to advertise its own host so that clients can access it individually.
GRPC Access
As we describe extensively in our open-source documentation, the LittleHorse Orchestrator speaks GRPC. This makes the client experience very easy while providing exceptional performance and stability. The only drawback is that GRPC uses the newer HTTP2 protocol, and therefore is not supported natively by most Kubernetes Ingress Controllers.
However, this changes with the introduction of the Gateway API, which has support for non-HTTP1 protocols, including GRPC and opaque TLS traffic.
Advertised Listeners
Much like Apache Kafka requires clients to be able to access individual Kafka Brokers, LittleHorse clients need to be able to address LittleHorse Servers independently. When a Task Worker connects to a LittleHorse Cluster, it first connects to any LittleHorse Server in the LittleHorse Cluster (known as a bootstrap server). The bootstrap server then returns to the Task Worker a list of LittleHorse Server endpoints to which the Task Worker should connect in order to start polling for tasks.