๐Ÿณ Setting Up a Local Kubernetes Cluster with K3s and Traefik Proxy ๐Ÿ”’

Kubernetes has become the standard for managing containerized applications, but setting up a development environment can be complex. However, with K3s and Traefik Proxy, it's possible to create a local Kubernetes cluster quickly and easily.

๐Ÿง‘โ€๐Ÿ’ป Setting Up K3s Cluster

To begin, download and install K3s. K3s is a lightweight Kubernetes distribution that's easy to install and configure. After installing, start the K3s server:

sudo k3s server

๐ŸŒ Setting Up Traefik Proxy

Traefik is a popular reverse proxy and load balancer that integrates with Kubernetes. It's used to route traffic to the correct service or pod. To install Traefik, use the following command:

sudo kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v2.3/examples/k8s/traefik-deployment.yaml

๐Ÿ”ง Configuring Traefik Proxy

Next, configure Traefik by applying the necessary settings. Traefik can be configured using Kubernetes annotations. For example, to configure SSL, use the following annotation:

traefik.ingress.kubernetes.io/router.tls=true

๐Ÿ”’ Securing Services with Traefik Proxy

Traefik can also be used to secure services with HTTPS. To do this, create a Kubernetes secret with your SSL certificate and key:

css
kubectl create secret tls my-secret --key tls.key --cert tls.crt

Then, apply the secret to your service:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  annotations:
    traefik.ingress.kubernetes.io/router.tls=true
    traefik.ingress.kubernetes.io/router.tls.certresolver=my-resolver
spec:
  ports:
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 80
  selector:
    app: my-app

๐ŸŽ‰ Congratulations!

You've now set up a local Kubernetes cluster with K3s and Traefik Proxy. This setup is ideal for testing and development, and can easily be scaled up for production use.

0
Subscribe to my newsletter

Read articles from Raphael Carlos Rego directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Raphael Carlos Rego
Raphael Carlos Rego

Experienced, creative, and motivated software engineer with a solid background in full stack software development and 18+ years of experience, acculturated in devsecops.