My Introduction to Rancher, Kubernetes, etc

Hello everyone,

I started on this path to Kubernetes to understand how I could make use of it.

My starting point that lead me towards Rancher is that I found a youtube video guide with Kubernetes and Rancher that sounded like I could follow it and transfer the knowledge to similar devices.

The video showed how to use 8x Raspberry Pi as a Kubernetes cluster and Rancher in a ESXi VM.

Hence I thought I could use my 1x ODROID UX4 and ProxMox VM to do the same.

Besides the video constantly indicating the details in the guide in the comments (which did not exist), I managed to get K3 installed on ODROID and Rancher on a VM in Proxmox, however getting Rancher to Manage the K3 on ODROID did not occur as seamlessly as indicated in the video.

Here are some observations of the whole process;

There is a step in the process to Edit the imported cluster API to add an “agentImageOverride” so that Rancher knows the Target has an ARM64 Processor and not the default AMD64. This process is needlessly complicated.

Why can’t K3 indicate to Rancher that it has a ARM processor and Rancher choose the correct image to deploy?

When editing this API, it works the first time ONLY.

When I try to update it, it throws an error indicating fieldName “ClusterTemplateRevision” and the only Item on the page I identified was clusterTemplateRevisionId, which is a drop down selection box with the options of Blank and NULL.

When I tried to Apply the Rancher configuration to K3, I received the following error message.

Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use “kubernetes.io/os” insteaddeployment.apps/cattle-cluster-agent configured

Rancher version I have installed is V2.5.11, the video I followed was less than 6 months old and searching online for more information has not been helpful, hence I started looking through Rancher Documentation.

Now I see that there is Rancher V2.6, but the way I installed V2.5.11 did not indicate a version and I found the install method indicated in the video documented on the Rancher install page for V2.5 but the V2.6 install method is not indicated to be able to work in the same method.

How do I upgrade V2.5 to V2.6?

It is indicated on the V2.5 page that I should be able to run something like this;

curl -sfL https://get.rancher.io | INSTALL_RANCHERD_VERSION=v2.6.3 sh -

However this has not worked.

It appears to me that I need to start again with a new VM and use a different install method for V2.6

After reading the V2.6 installation requirements, it indicates that;

In Kubernetes v1.20, the dockershim became deprecated, and Docker became deprecated as a container runtime for Kubernetes.

I think that this is a misleading statement from what I have read is the “dockershim” is being migrated to another project owner and docker can still be used with Kubernetes. It’s even the documented installation method for Rancher. Perhaps this misleading because there is “Kubernetes” and Apps that are managed by the “Kubernetes” standard?

So now after reading through other Rancher projects, I come across Longhorn, this sounds like something I’d be interested in but then reading the documentation I found this is not compatible with what I have at home.

I have started my journey with containers in the past couple of years and the first exposure was via a project called Rockstor. I started with Rockstor because of BTRFS and it appeared to be the only Linux NAS software package to run BTRFS. However I since found OMV can run BTRFS but management is via CLI. Being exposed to the CLI of BTRFS, I can now see that Rockstor is mostly a GUI abstraction layer over top of the BTRFS CLI tools and dose little to explain / display / fix the shortcomings of BTRFS. Rockstor has “Rock-ons” that are a “repository of YAML configurations” for containers of apps and each app required storage and Rockstor had the clumsy process of selecting the app, then start to follow the wizard, identify the number of “storage” locations required by the app, go back to another section of Rockstor GUI, create the storage locations/shares, then go back to the app and go again to select shares now created, etc.

Now I can see the similarities between the “Rock-ons” and Kubernetes, however I do see the missing part that appears to be overlooked is the internal knowledge of each app that is required to get this all working. Which from what I have seen is to find a online guide and Copy then modify the YAML to get it going in your environment.

Now I have gotten this off my chest what I want to know is;

  • Is the “agentImageOverride” a current Bug, is it fixed, how do I report it?

  • Can K3 indicate the CPU Archtecture to Rancher to obtain the appropreate image? (Is this a design GAP?)

  • Is there a Container Deployment layer that is more structured to understand how it all works. I’m thinking along the lines of Proxmox GUI where for a VM you specify the Storage for the VM that sits on top of the Storage defined by Proxmox.

  • How do I get Rancher to Manage K3 on ODROID?