Follow

Follow

🐳 Setting Up a Local Kubernetes Cluster with K3s and Traefik Proxy 🔒

Raphael Carlos Rego's photo
Raphael Carlos Rego
·Mar 9, 2023·

2 min read

🐳 Setting Up a Local Kubernetes Cluster with K3s and Traefik Proxy 🔒

Photo by Growtika on Unsplash

Play this article

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.

Did you find this article valuable?

Support Raphael Carlos Rego by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
 
Share this