Server transition - Ubuntu/docker to TrueNAS/Kubernetes

I initially setup my node on an ubuntu system running docker and portainer. The storage is a raid pool i setup in ubuntu and its formatted xfs. I am in the processes of trying to transition everything over to a TrueNAS Scale system. I have the rsync coping without any issues. my problem is transitioning the docker instance over to kubernetes. I have not found much information on doing this type of conversion so i’m thinking it might not be possible. The reason I want to transfer instead of start a new instance is that the node is currently full up. switching to TrueNAS will make expanding the data pool easier.

Do I actually need to copy the docker over or can i just create a new instance entirely that will take over the old identity of the docker?

I am in a similar situation and want to migrate my existing nodes to a new Truenas Scale System. I think it’s possible to run the storagenode-docker containers also directly on Truenas, but unfortunately you won’t be able to use the docker cli or portainer for that. You have to create the k3s container-templates via the TrueNas GUI as far as I know. I am right now testing this.

Here and in the following posts you can find some recent discussion about this topic: ZFS performance, ARC vs L2ARC vs special vdev - #5 by striker43

That is what I have seen from my research. I just have no clue. I’ve never messed with Kubernetes. Please let me know how things go for you. I’m still transitionin data. Been running for a week now. 8TB is a lot!

1 Like

Your node = your identity + config/data. All the others (binary, containers, …) can be replaced, just be extra careful to use your right direction.

A common risk (as an example):

  • you copy the identity to the right directory
  • you copy the data to the wrong directory

Storagenode will start with the old identity, but pieces will be missing. You will see it as working, but you will be DQed very soon…

I am not familiar with TrueNAS, but based on the documentation, you should create two “datasets”.

You should do the same thing, but fill the datasets (identity + config/data) with your old data, instead of generating/signing identity.

You can also create a temporary Storagenode strictly following the instruction and investigate the directory structure of the datasets, just to learn how should it look like.

2 Likes

Thank you! I did see those instructions but the way that TrueNAS created their pod you are required to enter an authentication token so I stopped following those instructions. I will take a deeper look. Maybe I can manually create the pod.

@elek Thank you so much for your guidance! I did test and was able to see how things work now. I ended up having to manually create the Kubernetes pod. The one TrueNAS lists links to a very old version and also attempts to create the the node identity automatically. Making sure the path directorys are correct is very important as you mentioned. I just need to wait for everything coping now!

1 Like

Note: Doesn’t really matter, I checked that old version and it has the auto-update inside the container, so it supposed to download the latest version during startup.

1 Like

And also they updated the helm charts. But you need to upgrade to a minimum version first, then - to 2.x.x
However, it doesn’t affect your node, since it has an integrated auto updater, the node will be updated to the latest version automatically (this is unrelated to a chart version).