Internal services are services that are accessed directly only by other services or jobs in the cluster (or administrators that log in and run ad hoc tools). In some cases, internal services are not accessed at all, and just perform their function and store their results in a persistent store that other services access in a decoupled way.
But some services need to be exposed to users or external programs. Let's look at a fake Hue service that manages a list of reminders for a user. It doesn't really do anything, but we'll use it to illustrate how to expose services. I pushed a dummy hue-reminders image (the same as hue-learn) to Docker Hub:
docker push g1g1/hue-reminders:v2.2