Getting Started with Kubernetes (at home) — Part 3

Justin Gauthier

In the first two parts of this series, we looked at setting up a production Kubernetes cluster in our labs. In part three of this series, we are going to deploy some services to our cluster such as Guacamole and Keycloak.

Step-by-step documentation and further service examples are here.


Guacamole is a very useful piece of software that allows you to remotely connect to your devices via RDP, SSH, or other protocols. I use it extensively to access my lab resources, even when I am at home.

You can use this Helm Chart to install Guacamole on your Kubernetes cluster. The steps are as follows:

  1. Clone the Guacamole Helm Chart from here
  2. Apply any changes to values.yaml such as the annotations and ingress settings.
  3. Deploy the Helm Chart from the apache-guacamole-helm-chart directory
  4. helm install . -f values.yaml --name=guacamole --namespace=guacamole
  5. An ingress is automatically created by the Helm Chart, and you can access it based on the hosts: section of values.yaml

Once you have deployed the Helm Chart, you should be able to access Guacamole at the ingress hostname specified in values.yaml.


Keycloak is an open-source single sign-on solution that is similar to Microsoft’s ADFS product. You can read more about Keycloak on my blog.

There is a stable Keycloak Helm Chart available in the default Helm repo, which we will be using to deploy Keycloak, you can find it here.

  1. Apply any changes to values.yaml
  2. Deploy the helm chart stable/keycloak with values
  3. helm install --name keycloak stable/keycloak --values values.yaml
  4. Create an ingress
  5. kubectl apply -f ingress.yaml
  6. Get the default password for the keycloak user.
  7. kubectl get secret --namespace default keycloak-http -o jsonpath="{.data.password}" | base64 --decode; echo

Though this article is on the shorter side, hopefully it exemplifies how easy it can be to run services in Kubernetes. We mainly looked at pre-made Helm Charts in this article, however deploying a service without a Chart can also be just as easy. I prefer using charts as I find it easier to manage than straight Kubernetes manifest files.

You can checkout my public Kubernetes repo at for further information and more service examples.

Originally published at on May 4, 2019.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade