Hey guys. Im using system-upgrade-controller to up...
# k3s
a
Hey guys. Im using system-upgrade-controller to upgrade my k3s cluster version. I found myself in a rather strange situation. After upgrading my master node from 1.30 to 1.31, the kube-system pods (scheduled on worker node) restarted as expected but they pulled their images from upstream registry instead of waiting for images to load in the local registry. i have the images.tar.zst in the correct folder ie; agent/images folder before k3s boot I was able to confirm that it was an upstream pull by disabling default-endpoint-registry. the pods went to ErrImagePull(which shows they wanna fetch from upstream but it was disallowed) followed by transitioning into running state after images were available in the local registry. (see screenshot)
PS: i dont see this issue when upgrading to 1.32. kube-system pods are only restarted after master has loaded the images in agent/images folder in the local registry
c
The kubelet doesn't even get started until after all the images are imported, regardless of version. What do the service logs show during startup?
Oh, I see, you're saying that the server upgrade caused new pods to run on the agents, but the agents hadn't been upgraded yet so they hadn't imported the images. Yes, that would be expected behavior.
Are you using spegel? It takes a moment for the p2p mesh to come up immediately after start. You might consider preloading the images before the upgrade, if you absolutely cannot have it going to the upstream.
a
Thanks @creamy-pencil-82913 for the response.
Oh, I see, you're saying that the server upgrade caused new pods to run on the agents, but the agents hadn't been upgraded yet so they hadn't imported the images
yes thats the exact behavior thats happening
Are you using spegel?
yes Im using embedded registry.
You might consider preloading the images before the upgrade
You mean to move the tar.zst to images folder and restart k3s server before an upgrade? I had only moved tar.zst to images folder in the prepare step. Im expecting cluster upgrade to handle the k3s restart. tho I see the correct behavior in 1.32, What really changed in 1.32? kube-system pods get scheduled/restarted on agents only after the images are completed loaded in the registry.
Also will tar.zst moving to agent/image folder autoload the image? I saw some recent work for auto-loading images without a k3s restart.