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
