Traefik with let’s encrypt support using Helm and running on DO-k8s

Yilmaz Guleryuz
Sep 29 · 2 min read

DigitalOcean has been my favourite cloud platform for long time now, because it is developer-friendly and it offers services with reasonable prices.

Here I want to share about how to setup own Kubernetes (k8s) cluster using digitalocean’s platform, shortly do-k8s!

Prerequisites:

First and foremost, get yourself a DO account if you don’t have it yet. Then create a do-k8s cluster using do account page, it is easy to use and intuitive.
NB! For pet projects or just development purposes, you can use even 1-node which costs just 10usd!

https://cloud.digitalocean.com/kubernetes/clusters/new

When your cluster is ready, browse to do-k8s admin page and download config file into a local folder or working folder. For example, my config file is named petcat-k8s-kubeconfig.yaml and resides under my home folder’s kubeconfigs /home/zeus/kubeconfigs/petcat-k8s-kubeconfig.yaml

Make sure you already have installed kubectl

To simplify kubectl usage with DO config, I did update bash_profile with

https://gist.github.com/zeusbaba/7a2ec4b08d10d9eb671c1d10318f3892

Now you can use $kubectl as shortcut when running k8s commands and have direct access to my DO cluster.

DO-K8s: Connect and Setup

Now let’s get web-ui-dashboard for k8s cluster.

https://gist.github.com/zeusbaba/9ae12a18b01962e5df64ec701732c7d1

Let’s get monitoring in place

https://gist.github.com/zeusbaba/fd8baae6b9029d69f98cbefc509d5c8e

HELM: install

https://gist.github.com/zeusbaba/be060440bcf77c4c8ef392b52b42f2c9

TRAEFIK: install and configure

We’ll be using Helm chart for Traefik

NB! In this Traefik setup, we want to enable Let’s Encrypt and use DO-dns for domains, therefore we need to create a secret using DO token.

Before installing Traefik, …make sure to create secret for acme.dnsProvider

$kubectl create secret generic acme-dnsprovider-config --from-literal=DO_AUTH_TOKEN=FIXME_YOUR_DO_TOKEN  $kubectl get secret acme-dnsprovider-config

tbc… create user+pass for Traefik

Helm chart configtraefik-helm.yaml for your Traefik instance.

Now we can install this chart with

helm install --generate-name --namespace kube-system --values traefik-helm.yaml stable/traefik

At the end of successful install, you get the name of the instance, e.g. traefik-1564937212 , not this down because you need it for any further interactions like upgrade or delete.

If all went well, now you can access Traefik dashboard from the url you’ve assigned in traefik-helm.yaml config.

till next time, #LearnMakeShare

Yilmaz Guleryuz

Written by

Antifragile with #LearnMakeShare philosophy! ⚡️

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