K3s

Thursday, Mar 19, 2026 | 2 minute read | Updated at Thursday, Mar 19, 2026

Emmanuel Decena

Running K3s on a two-node cluster.

I need to update kubectl config on my client laptop so that it can send commands to the cluster on bare metal

    +--------------------+
    |    Client Laptop   |
    |--------------------|
    |  git, kubectl      |
    +---------+----------+
              |
    git push / pull
              |
              v
    +--------------------+
    |  Remote Git Server |
    |--------------------|
    | GitHub / GitLab    |
    +---------+----------+
              |
           CI / CD
              |
              v
  +----------------------------------+
  |        Kubernetes Cluster        |
  |----------------------------------|
  |  +------------+   +-----------+ |
  |  | API Server |-->| Worker     | |
  |  |            |   | Nodes      | |
  |  +------------+   +-----------+ |
  |                                  |
  +----------------------------------+

    ^
    |

kubectl / API | +——————–+ | Client Laptop | +——————–+

File permissions on k9s, learned about file owners ship when I needed to change the owner of the config for k9s to read, from root to user

Now jupyterhub is pending, since I have not installed an ingress controller or load balancer yet, what is the difference? Just installing metallb without understanding Differnece is that ingress controller is one ip for many apps, so it should be the first entry point metal lb is just load balancer, one ip for one app

Ingress using traefik

Traefik is already install in k3s best practice is not to modify the deployment object directly, but to overwrite it this ensures changes are retained when upgrading k3s and its fully managed by kubectl

we read the existing object using:

we overwrite it with traefik config also with ingressroutes:

if we apply these it will delete the existing traefix config and recreate! we saw it in real time

still confued with ingress: map out which components of traefik is ingress controller vs ingress routes vs ingress routes

Services

services are just resources so that a pod has a static ip address

© 2025 - 2026 Blog

All rights reserved

About

I created this blog to monitor my curiosity, writing about concepts that interest me.

I write about personal projects, ideas, and the things I learn along the way. Hand-crafted and LLM-free.

Occasionally, a travel story or food review sneaks in.

If my writing resonates with you, feel free to connect with me at ecdecena [@] gmail.com.

I’m currently based in Cebu City, PH 🏖️.

Disclaimer

The contents on this site reflect my thoughts and opinions only. It does not represent the views of any organization, employer, or institution I am affiliated with.

Social Links