Separating internal and external services
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 much – just returns a fixed list of reminders – but we'll use it to illustrate how to expose services. I already pushed a hue-reminders
image to Docker Hub:
docker push g1g1/hue-reminders:3.0
Deploying an internal service
Here is the deployment, which is very similar to the Hue-learner deployment, except that I dropped the annotations
, env
, and resources
sections, kept just one or two labels to save...