Skip to main content

What do [I wish I knew] / I think you should know *before* starting

Dockerfiles: I wish I knew how easy it is to use Dockerfiles to create your own custom container images from the beginning! I wish I had attempted sooner, it is so powerful being able to do that! You can often find dockerfiles on github when you are browsing open source project code alongside the docker-compose.yaml that is used to deploy the app.

Kubernetes:
Its not infinitely hard! If you want the most flexible deployment system its the way to go. You can configure services to stay online during reboots of servers and maintenance. Kubernetes has built in features to support replicating application data between multiple remote sites and the cloud. Kubernetes has a modern design that considers everything that you might need in the modern world it just has a learning curve that is steepest at the beginning.
I sometimes wonder if I should've skipped docker for kubernetes. I was super intimidated with a lot of the tech sector and later found things are easier than I assumed. I have a good enough understanding of kubernetes now to say if I put the time in I'd probably be pretty fluent with it by now even if its somewhat moreĀ  painful to learn, its just about putting in the time. I definitely plan to learn more soon.
I have spent very little time configuring a cluster consisting of 10 Nodes; 5 masters, 5 workers. I was recommended to scale down to 3 masters max even if I increase workers. Apparently lots of masters isnt really needed lol. I have been planning on switching the deployment to Cilium for a CNI, I am running Calico and metallb and I found after deploying kubernetes and learning more that Cilium would be my preference. Many users I have discussed with are running Cilium as well after making this decision so it seems more unanimous of a decision. Though metallb and calico is just fine!



I wish I ever thought to research the purpose of base linux directories:
https://www.pathname.com/fhs/pub/fhs-2.3.html

Directory Description
bin Essential command binaries
boot Static files of the boot loader
dev Device files
etc Host-specific system configuration
lib Essential shared libraries and kernel modules
media Mount point for removeable media
mnt Mount point for mounting a filesystem temporarily
opt Add-on application software packages
sbin Essential system binaries
srv Data for services provided by this system
tmp Temporary files
usr Secondary hierarchy
var Variable data

I used to store my docker deployments in /mnt/app_data/Server/_docker-stack/<appname> 🄓
Now I store them at /opt/docker/<app name> I only put data in the /mnt or /media folders if it relates to a different disk or medium than the primary disk that the OS is installed on. Its super tidy, and the way it was designed to be used.