- hosting
- server
- servers
- infrastructure
- kubernetes
Choosing which Kubernetes to use¶
I, like you if you're at this page, have become pretty familiar with Containerization technologies. I've used Docker for a while now, and switched to Podman. Now I want to try Kubernetes again.
My history with Kubernetes¶
The first time I ever even remotely touched Kubernetes was when I installed Truenas Scale at the beginning of this year. It was really neat, and things worked pretty well at first. That is until I had about 15 containers running, and they'd run fine until I had to reboot. Suddenly it was taking 20-30 minutes for all the services to come up, even the ones completely unrelated to each other. Suffice it to say this left a very bad taste in my mouth.
The guy who maintained the biggest library of Truenas Scale Helm charts is also simply to abbrassive to even try to communicate with. I used AI to make fun of him and respond to him using his own attitude, i laughed, he didn't. Pretty sure he still doesn't know it was an AI response based on the issue along with his attitude in the responses, and it turns out he was wrong anyway. Don't care.
k8s - This is what Truenas Uses.
What is k8s¶
From my understanding k8s is the Google Kubernetes package. It's large, and slow.
Alternative¶
k3s - k3s from what I can tell is the same Kubernetes libraries underneath, but much more optimized. It's 30MB vs 300MB, faster to launch applications, faster to migrate clusters.
Getting Started¶
I've chosen to try k3s, and of course my favorite Linux distro, Alpine 3.18. I've already got two cloud-init images built, one that runs docker, the other runs podman. I think the best course of action would be to start with KinD before perhaps making another cloud-init with k3s pre-installed. But this will be difficult, and I want to start out a little easier. k8s provides a KinD script so I'll start with that for now and move to k3s later once I understand all the parts that are truely needed and how I'm going to launch them.
My dashboard image already uses DIND to connect to the Docker/Podman Socket , so this seems like a good starting point to test things in a fairly non-volatile way. I created a new VM and installed my dashboard to it. Then I can ssh to the host, go into the dashboard dind container and play around.
The first thing I did was
apk add go
go install sigs.k8s.io/kind@v0.20.0
PATH="$PATH:$(go env GOPATH)/bin"
kind create cluster
And it worked.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04e97a13577e registry.gitlab.centerionware.com:443/release-paradigm/dashboard:latest "" 18 hours ago Up 18 hours 5000/tcp dashboard
1af6c39c8937 kindest/node "" 9 hours ago Up 9 hours 127.0.0.1:45717->6443/tcp kind-control-plane
5ed1c4513225 traefik:v2.10 "--api.insecure=true…" 18 hours ago Up 18 hours 80/tcp, 8080/tcp traefik
eb32487e9b19 gitlab/gitlab-runner:alpine "run --user=gitlab-r…" 18 hours ago Up 18 hours gitlab-runner-10
kubectl can be accessed in the kind-control-plane.
Obviously I have a ways to go before figuring out how to get this setup. The goal is going to be getting Rancher connected up to use as a management solution.
TO BE CONTINUED...